Использование кэширования браузера на сайте
Я разработал свой сайт, используя magento и anguar js. Со страницы Google Insights я понял, что мне нужно использовать кэширование браузера. Для этого я определил свой файл.htaccess lke вот так:
RewriteEngine On
Options FollowSymLinks
RewriteBase /
RewriteCond %{HTTP_USER_AGENT} (facebookexternalhit/[0-9]|Twitterbot|Pinterest|Google.*snippet)
RewriteRule ^(.*)$ story.php?id=$1 [L,QSA]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{HTTP_USER_AGENT} !facebookexternalhit/[0-9]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /#/$1 [L]
<IfModule mod_headers.c>
# YEAR
<FilesMatch "\.(ico|gif|jpg|jpeg|png|flv|pdf)$">
Header set Cache-Control "max-age=29030400"
</FilesMatch>
# WEEK
<FilesMatch "\.(js|css|swf|woff)$">
Header set Cache-Control "max-age=604800"
</FilesMatch>
# 45 MIN
<FilesMatch "\.(html|htm|txt)$">
Header set Cache-Control "max-age=86400"
</FilesMatch>
Header set Connection keep-alive
</IfModule>
Но это не работает, так как Google Insight по-прежнему показывает то же сообщение.
1 ответ
Вы должны использовать mod_expires
проверить, какие активы должны быть перезагружены через определенное время. В вашем .htaccess
Файл, который вы можете настроить так:
<IfModule mod_expires.c>
ExpiresActive On
ExpiresDefault "access plus 2 days"
ExpiresByType image/gif "access plus 2592000 seconds"
ExpiresByType image/jpeg "access plus 2592000 seconds"
ExpiresByType image/png "access plus 2592000 seconds"
ExpiresByType text/javascript "access 1 month"
ExpiresByType text/x-javascript "access 1 month"
ExpiresByType application/javascript "access 1 month"
ExpiresByType application/x-javascript "access 1 month"
ExpiresByType application/json "access 1 month"
</IfModule>
Как вы можете видеть, есть ExpiresDefault
2 года от времени доступа на. Для всех изображений и JavaScript вы можете определить время. Если вам нужны другие значения, вы можете найти подробные документы здесь http://httpd.apache.org/docs/current/mod/mod_expires.html