Я пытаюсь использовать кэширование для ускорения времени отклика веб-сайта. Большая часть документации, которую я прочитал, предлагает установить истечение на +1 месяц со времени доступа следующим образом:
ExpiresActive On
ExpiresByType text/css "access plus 1 month"
Я обеспокоен что, если я обновляю файл CSS, что клиент не получит обновленный файл.
Действительно ли возможно гарантировать, что клиент загружает новую версию файла, если это изменяется?
Любая справка очень ценится
Ваше беспокойство верно - клиенты, браузеры которых получили файл, обычно не получат обновленную версию в течение 1 месяца после обращения к нему, если только они не очистили кеш своего браузера или не перезагрузили страницу.
Один из способов обойти это - когда вы обновляете файл CSS, изменяете HTML, который ссылается на него, чтобы иметь? V = 2 или? V = 3 и т. Д. В конце атрибута href тега ссылки (то есть после .css) . Браузеры рассматривают это как уникальный URL-адрес и, таким образом, загрузят новую копию, однако она будет указывать на тот же физический файл .css на вашем сервере.
<link rel="stylesheet" type="text/css" href="/styles.css" />
становится
<link rel="stylesheet" type="text/css" href="/styles.css?v=2" />