CSS изменения не отражаются на сайте - PullRequest
5 голосов
/ 21 декабря 2008

Всякий раз, когда мы вносим изменения в CSS, для отражения этих изменений на моем сайте обычно требуется 24 часа. Я попытался очистить кеш сервера и кеш браузера, но это тоже не помогает. Есть ли другой способ сделать так, чтобы изменения CSS отражались сразу после обновления?

это происходит во всех браузерах ... когда я проверяю его в браузере, я могу получить доступ к своему файлу css двумя путями, например: я храню свой css в папке с именем "Cssfolder", а мое имя css называется 135.css Поэтому, когда я получаю доступ к путям папок, C ssfolder / 135.css & c ssfolder / 135.css, один из путей показывает мне последний css, тогда как другой показывает мне старый css. Обратите внимание, что буква «c» является заглавной на одном пути, а мала на другом.

Спасибо.

Ответы [ 9 ]

7 голосов
/ 21 декабря 2008

Я обнаружил, что это довольно распространенная проблема во многих моих проектах. Я бы предложил две вещи ...

  1. Если вы работаете над приложением, вы можете использовать CSS Cachebuster во время разработки.

  2. Следуя идее Cachebuster, я обнаружил, что частое добавление временной метки файла CSS в виде строки запроса вне ссылки CSS поможет сообщить браузеру, что файл отличается ... что-то в этом роде. .. what.css? 12212009035543

3 голосов
/ 21 декабря 2008

Возможно, вы захотите использовать инструмент мониторинга, например Live Http Headers для Firefox, для просмотра запросов и ответов на сервер и с сервера. Это обычно решает много проблем для меня. Взгляните на заголовки " Expire " и условные запросы (например, "If-Modified-Since"). При этом обратите внимание на локальное время и часовые пояса сервера и клиента - возможно, они существенно различаются, и условные запросы GET «похоже» обрабатываются правильно из-за будущих или искаженных временных отметок.

Вы можете принудительно загрузить текущий css напрямую с сервера, добавив в URL случайное уникальное значение, например, http://example.com/Cssfolder/135.css?983274928374 и http://example.com/cssfolder/134.css?08973249827.. Невозможно, чтобы это когда-либо кэшировалось, если только вы используйте одно и то же случайное значение дважды.

Таким образом, вы узнаете, где искать решение вашей проблемы: на сервере, интернет-провайдере / прокси-сервере или в вашем браузере.

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

Я написал сообщение в блоге о том, как мы преодолели эту проблему здесь:

Предотвращение проблем с кэшированием таблиц стилей JavaScript и CSS в ASP.NET

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

1 голос
/ 21 декабря 2008
1 голос
/ 21 декабря 2008

Я имел дело с этой проблемой в прошлом и в итоге написал httpmodule для решения этой проблемы.

Это довольно просто, он просто находит все ссылки script / css в теге head (теперь они должны иметь runat = server) и добавляет номер версии сборки к ссылке, так же, как описывает Тим ​​К. Таким образом, я уверен, что мои клиенты всегда загружают новейшие css / scripts, когда мое приложение обновляется в рабочей среде, и никогда больше не сталкиваются с этой проблемой.

1 голос
/ 21 декабря 2008

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

Я иногда видел случаи, когда мне приходилось показывать CSS в браузере, а затем в следующий раз, когда я был на реальной странице, он использовал этот новый CSS. Обычно, просто нажимая на обновление, вы делаете это.

У вас есть какие-нибудь веб-кеши, такие как Akamai?

Если вы попытаетесь перейти на страницу CSS с компьютера, который никогда не видел старую версию, какую версию он показывает?

РЕДАКТИРОВАТЬ: Изменен ответ, чтобы отразить правки в вопросе.

0 голосов
/ 01 июня 2014

Я был озадачен этой проблемой, тогда кто-то сказал Ctrl + F5. Работал на меня:)

0 голосов
/ 21 декабря 2008

Когда я развиваюсь и мне нужно быть уверенным, что я вижу изменения во время работы, я втыкаю css в страницу, т.е.

<style type="text/css">
/* your css */
</style>

Или вы можете постоянно менять имя самого файла CSS, что не очень полезно в производственной среде, но, возможно, хорошо при разработке.

Я знаю, что это не решает проблему, но для разработки это нормально.

0 голосов
/ 21 декабря 2008

Может быть, кеш интернет-провайдера, как в этом случае ?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...