Css файл кеширования - PullRequest
       7

Css файл кеширования

6 голосов
/ 04 ноября 2010

У меня есть система, в которой кэш-максимальный возраст установлен на 0, и возникает проблема, когда я вносил некоторые изменения в свой style.css, когда изменения не отображаются на клиенте. Браузер будет использовать старую кэшированную версию CSS. У меня простой вопрос: будет ли имя файла CSS в качестве style.css? 123 будет кэшироваться как новый?

Ответы [ 4 ]

15 голосов
/ 04 ноября 2010

Да, добавление уникальной строки запроса в URI ресурса заставит клиента выбрать «свежую» версию (поскольку клиент не знает, что это просто обновление ранее кэшированного ресурса),Это называется fingerprinting , и вы обычно используете временную метку или инкрементный номер версии 1 файла CSS.

В Google Web Fundamentals есть отличная статья на Оптимизация кеша HTTP .Особенно раздел под названием «Аннулирование и обновление кэшированных ответов:»

Как вы получаете лучшее из обоих миров: кэширование на стороне клиента и быстрые обновления? Вы изменяете URL ресурса и заставляете пользователя загружать новый ответ при каждом изменении его содержимого.Как правило, вы делаете это путем встраивания отпечатка файла или номера версии в его имя файла - например, style. x234dff .css.

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


1) Это то, что здесь делается на SO, например, http://sstatic.net/js/global-login.js?v=12

1 голос
/ 04 ноября 2010

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

Вы можете переименовывать свой CSS-файл каждый раз, когда вносите изменения, IE:

основной v1.css Основной-v2.css основной v3.css

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

0 голосов
/ 04 ноября 2010

Вы можете заставить браузер думать, что это новая таблица стилей каждую секунду, отметив время CSS:

<link rel="stylesheet" type="text/css" href="style.css?<?php echo date('l jS \of F Y h:i:s A'); ?>" />

Что даст вам следующее:

<link rel="stylesheet" type="text/css" href="style.css?Thursday 24th of April 2008 04:45:21 PM" />

Получено из: Можем ли мы предотвратить кеширование CSS?

0 голосов
/ 04 ноября 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...