Включить кеш браузера для html сайта

DataPro

Natapro
Регистрация
21 Авг 2009
Сообщения
242
Реакции
79
Здравствуйте, создал сайт на штмл, без движков.
Задался вопросом прикрепить к нему кеш что-бы оптимизировать скорость отображения.
Подскажите как это правильно сделать. сайт состоит с 1 html страницы.
Подскажите что нужно прописать в .htaccess
И что нужно прописать на странице, что б .htaccess следил за её обновлениями и обновлял кеш.
Читал что можно указать время последнего редактирования, и постоянно его менять, этим самым кеш так же будет постоянно обновляться.

Буду признателен за примеры.


Нашел один пример .htaccess но, не знаю верный ли он, и что прописать в штмл странице что б она с ним взаимодействовала.
Код:
# кеширование в браузере на стороне пользователя
<IfModule mod_expires.c>
ExpiresActive On
ExpiresDefault "access 7 days"
ExpiresByType application/javascript "access plus 1 year"
ExpiresByType text/javascript "access plus 1 year"
ExpiresByType text/css "access plus 1 year"
ExpiresByType text/html "access plus 7 day"
ExpiresByType text/x-javascript "access 1 year"
ExpiresByType image/gif "access plus 1 year"
ExpiresByType image/jpeg "access plus 1 year"
ExpiresByType image/png "access plus 1 year"
ExpiresByType image/jpg "access plus 1 year"
ExpiresByType image/x-icon "access 1 year"
ExpiresByType application/x-shockwave-flash "access 1 year"
</IfModule>
# Cache-Control
<ifModule mod_headers.c>
# 30 дней
<filesMatch "\.(ico|pdf|flv|jpg|jpeg|png|gif|swf)$">
Header set Cache-Control "max-age=2592000, public"
</filesMatch>
# 30 дней
<filesMatch "\.(css|js)$">
Header set Cache-Control "max-age=2592000, public"
</filesMatch>
# 2 дня
<filesMatch "\.(xml|txt)$">
Header set Cache-Control "max-age=172800, public, must-revalidate"
</filesMatch>
# 1 день
<filesMatch "\.(html|htm|php)$">
Header set Cache-Control "max-age=172800, private, must-revalidate"
</filesMatch>
</ifModule>
# использование кеша браузеров
FileETag MTime Size
<ifmodule mod_expires.c>
<filesmatch ".(jpg|jpeg|gif|png|ico|css|js)$">
ExpiresActive on
ExpiresDefault "access plus 1 year"
</filesmatch>
</ifmodule>
#Запрет отдачи HTTP-заголовков Vary браузерам семейства MSIE
<IfModule mod_setenvif.c>
BrowserMatch "MSIE" force-no-vary
BrowserMatch "Mozilla/4.[0-9]{2}" force-no-vary
</IfModule>

 
Пример отличный! Его и юзай. Только предварительно протестируй заголовки каким нибуть сервисом типа Для просмотра ссылки Войди или Зарегистрируйся
на предмет отдаваемыми апаче датами.
 
Во-первых, html-страница никак с этим всем не взаимодействует.

Браузер проверяет, есть ли у него в кеше страница с вашего сайта. Он запрашивает сервер, тот отвечает "да ну, новая тебе не нужна, она тут не будет меняться до max-age", и браузер показывает старую копию.
Можно просто поставить всем
Header set Cache-Control "max-age=2592000, public"

и не делать такой длинный конфиг.

Вообще сервер на чистых html-ках и так должен летать, если их там не сто миллионов в минуту запрашивается. Чтобы это ускорить ещё, нужно ставить кеш на стороне сервера, который html-ки будет держать в памяти, а не читать их с диска каждый раз. Какой-нибудь memcached, или SSD воткнуть, если там обычный HDD, но мне кажется, это не тот случай.
 
Если на чистых html-ках, то можно это прописать в head вообще без .htaccess:
HTML:
<meta http-equiv="Cache-Control" content="max-age=36000, must-revalidate" />
 
Назад
Сверху