CSS не обновляется во время отладки приложения ASP.NET MVC - PullRequest
23 голосов
/ 16 июля 2009

Я работаю над тестовым приложением на основе ASP.NET MVC. Я новичок в CSS, поэтому я тоже учусь этому.

Я создал главную страницу с именем "new.master" и создал новый css "new.css". Я называю вид из контроллера как:

return View ("About", "new");

Что я делаю, так это то, что я часто обновляю css и главную страницу. Поэтому я часто запускаю приложение в режиме отладки. Через некоторое время я перестаю видеть эффект изменений в CSS. Когда я "просматриваю источник" в chrome и проверяю css, он показывает старую версию.

Когда я изменяю имя как главной страницы, так и CSS, я начинаю получать обновленные представления, но это работает некоторое время, а затем снова прекращаю получать обновления CSS. Сталкивались ли вы с этой проблемой? Как я могу это исправить? (Это ужасно раздражает!)

Ответы [ 6 ]

60 голосов
/ 16 июля 2009

Ваш браузер кэширует CSS. Если вы принудительно обновите с помощью F5, это должно отобразить любые изменения.

11 голосов
/ 16 июля 2009

Я думаю, что это может быть проблема с кэшем браузера. В IE и FF я обычно делаю Ctrl + F5 или Ctrl + Refresh. Также вы можете вручную очистить кеш. Для IE вы можете использовать IE Dev Toolbar , а для Firefox есть Firebug , с обоими вы можете легко очистить кеш Не уверен насчет хрома, извините.

Сайед Ибрагим Хашими

Моя книга: Внутри Microsoft Build Engine: Использование MSBuild и Team Foundation Build

2 голосов
/ 27 января 2015

Я нашел другой случай, в котором это может произойти.

Мы запустили наше приложение с простыми ссылками на файлы CSS, а затем переключились на пакетирование. Мы обновили старый <link href="@Url.Content("~/somePath/someStyle.css")" rel="stylesheet" type="text/css" /> до @Styles.Render("~/Styles/bundles/someStyle").

Мы также используем несколько таблиц стилей, которые нужны только для некоторых страниц, и у них есть свой пакет. Теперь для одного из них мы забыли изменить тег ссылки на оператор @ Styles.Render.

В результате этот CSS обновлялся время от времени (поэтому мы подумали, что все в порядке; стиль не пропал), но мы не могли повлиять, когда произойдет обновление. Когда я начал вносить изменения в файл, я понял, что ничего, что я делаю (очистка кеша, перестройка проекта, перезапуск Cassini), не вызовет обновления. Браузер всегда получает 304 Not modified.

Итак, если у вас есть эти симптомы, проверьте ваши ссылки.

2 голосов
/ 16 июля 2009

Вполне возможно, что css кэшируется в вашем браузере, поэтому просто очистите кеш браузера, это должно помочь

0 голосов
/ 30 июня 2017

Это случилось со мной, когда у меня было главное представление, которое загружало частичные представления в зависимости от того, какое частичное представление хотел видеть пользователь, но помог ответ с этой страницы, https://forums.asp.net/t/1763494.aspx?applying+CSS+layouts+to+a+partial+view

CSS должен указываться в HTML-документе. Как следствие, вы не можете включить их в частичное представление ... потому что в В таком случае CSS включается в тело HTML. Пожалуйста, пожалуйста, стиль лист в заголовке страницы с частичным представлением.

У меня будут частичные ссылки в моих частичных представлениях, и любые изменения в файлах CSS никогда не произойдут, даже если я нажму Ctrl-F5 в браузере. Я также попытался очистить содержимое кэша в инструментах разработчика. Просматривая исходные таблицы стилей, я заметил, что css-файлы, связанные частичными представлениями, не менялись, поэтому для меня было исправлением переместить ссылки css из частичного представления в главное представление, где должны были храниться эти частичные представления. *

0 голосов
/ 12 июля 2016

со мной происходило нечто подобное.

Потом вдруг заметил, что на страницу добавлен пакет:

@Styles.Render("/bundles/classifiedDetailCss")

вместо:

@Styles.Render("~/bundles/classifiedDetailCss")

Обратите внимание на отсутствующий символ ~ в первом примере.

(Первый пример работал только после сборки проекта, в противном случае он вернул бы кэшированную версию даже в режиме отладки.)

...