2.3.1.5. Браузерное кеширование статики
Внимание!
Настройки кеширования влияют только на ресурсы, загружаемые браузером с нашего сервера. Для ресурсов, загружаемых со сторонних сервисов, кеширование нужно настраивать непосредственно на стороне этих сервисов.Использование браузерного кеширования может ускорить загрузку сайта при повторных посещениях и снизить число запросов к серверу. Суть заключается в том, что при первом посещении сайта сервер сообщает браузеру, как долго ему нужно хранить в своём кеше копии загруженных статических файлов. При повторном обращении к сайту браузер уже использует сохранённые в кеше локальные копии файлов и не обращается к серверу для их получения.
Настройка
- Откройте настройки сайта.
- Напротив «Кеширование» укажите период хранения статических ресурсов в браузере клиента и сохраните изменения:
- Подождите примерно 15-30 минут, пока изменения вступят в силу.
Индивидуальный период кеширования по типам файлов
Настройка кеширования через панель управления задаёт единый период для всех типов статических файлов. Если для определённых типов файлов необходимо установить индивидуальные периоды кеширования, выполните следующее:
- Уберите из списка статических файлов расширения файлов, для которых хотите установить индивидуальный период кеширования.
- Пропишите директивы кеширования в файле .htaccess.
Примеры директив кеширования:
# кешировать файлы html и htm на сутки <FilesMatch "\.(html|htm)$"> Header set Cache-Control "max-age=43200" </FilesMatch> # кешировать файлы css и js на неделю <FilesMatch "\.(css|js)$"> Header set Cache-Control "max-age=604800" </FilesMatch> # отключить кеширование файлов txt и zip <FilesMatch "\.(txt|zip)$"> Header unset Cache-Control </FilesMatch> ExpiresActive On # кеш по умолчанию 30 секунд ExpiresDefault "access plus 30 seconds" # кешировать файлы html и htm на сутки ExpiresByType text/html "access plus 43200 seconds" # кешировать файлы css и js на неделю ExpiresByType text/css "access plus 604800 seconds" ExpiresByType application/javascript "access plus 604800 seconds"