Вопрос
Есть ли способ определить или принудительно повторно кэшировать файл 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. Р>