Я пытаюсь использовать кеширование, чтобы ускорить время отклика веб-сайта. В большей части документации, которую я прочитал, предлагается установить срок действия на +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" />