Принудительно CSS Recache - PullRequest
6 голосов
/ 25 июня 2009

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

Ответы [ 3 ]

14 голосов
/ 25 июня 2009

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

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

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

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

2 голосов
/ 25 июня 2009

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

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

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

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

2 голосов
/ 25 июня 2009

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

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

...