Назад | Перейти на главную страницу

Если mod_expires используется в .htaccess, измененные файлы будут загружены клиентом

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