Каждый раз, когда мы вносим изменения в CSS, обычно требуется 24 часа, чтобы отразить эти изменения на моем сайте. Я пробовал очистить кеш сервера и кеш браузера, но это тоже не помогает. Есть ли другой способ отразить изменения CSS сразу после обновления?
это происходит во всех браузерах ... когда я проверяю его в браузере, я могу получить доступ к своему файлу css двумя путями, например: я храню свой css в папке с именем "Cssfolder", а мое имя css - 135.css Поэтому, когда я получаю доступ к путям папок, Cssfolder / 135.css & cssfolder / 135.css, один из путей показывает мне последний css, тогда как другой показывает мне старый css. Обратите внимание, что "c" заглавная в одном пути, тогда как маленький в другом дорожка.
Спасибо.
Это правда, даже если вы нажмете Shift-F5 при просмотре «старого» CSS?
да, это верно и для f5 и обновления :(





Вам действительно нужно увидеть, на стороне сервера или на стороне клиента. Если сервер по-прежнему сервировка старый CSS, то очевидно, что у вас нет шансов на стороне клиента.
Иногда мне приходилось показывать CSS в браузере, а потом в следующий раз, когда я был на настоящей странице, он использовал этот новый CSS. Обычно это делает просто нажатие кнопки «Обновить».
У вас где-нибудь задействованы какие-либо веб-кеши, такие как Akamai?
Если вы попытаетесь перейти на страницу CSS с компьютера, который никогда не видел старую версию, какую версию она показывает?
Обновлено: изменен ответ, чтобы отразить правки, о которых идет речь.
в этом случае будет отображаться более новая версия, но серверы не могут измениться, поэтому каждый раз, когда я обновляю код на сервере, я сталкиваюсь с этой проблемой. и у меня нет никаких веб-кешей, задействованных в этом случае
Если при просмотре с другого компьютера отображается более новая версия, вероятно, это проблема клиента.
Я обнаружил, что это довольно распространенная проблема во многих моих проектах. Я бы предложил две вещи ...
Если это просто приложение, над которым вы работаете, вы можете использовать CSS Cachebuster во время разработки.
Следуя идее, лежащей в основе Cachebuster, я обнаружил, что частое добавление метки времени файла CSS в качестве строки запроса вне ссылки CSS помогает сообщить браузеру, что файл другой ... что-то вроде ... Any.css? 12212009035543
Может быть, кеш интернет-провайдера, как в этом дело?
Когда я разрабатываю, и мне нужно быть уверенным, что я вижу изменения во время работы, я вставляю CSS на страницу, т.е.
<style type = "text/css">
/* your css */
</style>
Или вы можете постоянно менять имя самого файла css, что не очень полезно в производственной среде, но, возможно, нормально при разработке.
Я знаю, что это не решает проблемы, но для разработки это нормально.
Вы можете использовать инструмент мониторинга, например Заголовки Live Http для Firefox, чтобы видеть запросы и ответы на сервер и от него. Обычно это решает для меня много проблем. Взгляните на заголовки «Срок действия» и условные запросы (например: «If-modified-Since»). При этом обратите внимание на локальное время и часовые пояса сервера и клиента - возможно, они значительно отличаются, и условные запросы GET «кажутся» обрабатываемыми правильно из-за будущих или других искаженных временных меток.
Вы можете принудительно загрузить текущий css прямо с сервера, добавив случайное уникальное значение к URL-адресу, например http://example.com/Cssfolder/135.css?983274928374 и http://example.com/cssfolder/134.css?08973249827. Это невозможно кэшировать, если вы не используете одно и то же случайное значение дважды.
Таким образом, вы узнаете, где искать решение вашей проблемы: на сервере, у провайдера / прокси-сервера или в вашем браузере.
Я уже сталкивался с этой проблемой в прошлом и в итоге написал httpmodule для ее решения.
Это довольно просто, он просто находит все ссылки script / css в теге head (теперь они должны иметь runat = server) и добавляет номер версии сборки к ссылке, как это описывает Тим К. Таким образом, я уверен, что мои клиенты всегда загружают новейшие css / скрипты, когда мое приложение обновляется в процессе производства, и им больше никогда не придется сталкиваться с этой проблемой.
Меня озадачила эта проблема, потом кто-то сказал Ctrl + F5. Сработало у меня :)
Вы используете прокси-сервер или интернет-провайдер кэширует страницы?