Вопрос

Есть ли способ определить или принудительно повторно кэшировать файл CSS, если пользователь работает со старым файлом?

Это было полезно?

Решение

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

<link rel='stylesheet' href='/mystyles.css?random=87365835'>

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

Edit: @jitter: вам не нужно автоматически изменять URL-адрес для каждого запроса - вы можете основать его на временной метке файла CSS или даже просто изменить его вручную, когда вы хочу убедиться, что CSS будет перезагружен.

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

Вы можете попробовать отредактировать etags сервера: http://developer.yahoo.com/performance/rules.html#etags

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

Проверьте это решение вместо использования xx.css? rand = 213213213

Что такое элегантный способ заставить браузеры перезагружать кэшированные файлы CSS / JS?

Или Google для " автоматического управления версиями " плюс добавление JavaScript или CSS. Или "автоматическое управление версиями активов"

Он использует автоматический подход, который изменяет путь части URL-адреса путем добавления переменных get.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top