Изменения CSS не отражаются на сайте

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

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

Спасибо.

Вы используете прокси-сервер или интернет-провайдер кэширует страницы?

some 21.12.2008 11:26

Это правда, даже если вы нажмете Shift-F5 при просмотре «старого» CSS?

Jon Skeet 21.12.2008 11:36

да, это верно и для f5 и обновления :(

Samiksha 21.12.2008 11:55
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
5
3
9 329
7
Перейти к ответу Данный вопрос помечен как решенный

Ответы 7

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

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

У вас где-нибудь задействованы какие-либо веб-кеши, такие как Akamai?

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

Обновлено: изменен ответ, чтобы отразить правки, о которых идет речь.

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

Samiksha 21.12.2008 11:53

Если при просмотре с другого компьютера отображается более новая версия, вероятно, это проблема клиента.

Jon Skeet 21.12.2008 13:45
Ответ принят как подходящий

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

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

  2. Следуя идее, лежащей в основе 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. Сработало у меня :)

Другие вопросы по теме