CSS не обновляется при отладке приложения ASP.NET MVC

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

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

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

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

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

Ответы

Ответ 1

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

Ответ 2

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

Сказал Ибрагим Хашими

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

Ответ 3

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

Ответ 4

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

Мы начали наше приложение с простых ссылок на файлы 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.

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

Ответ 5

У меня было что-то подобное со мной.

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

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

вместо:

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

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

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

Ответ 6

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

CSS должен быть указан в документе Html. Как следствие, вы не можете включить их в частичное представление... потому что в в таком случае css включен в тело Html. Пожалуйста, используйте стиль лист в верхней части страницы, на которой размещен частичный вид.

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