0

我使用 magento 和 anguar js 开发了我的网站。从谷歌页面 Insights 中,我了解到我必须利用浏览器缓存。因此,为此,我定义了我的 .htaccess 文件,如下所示:

 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>

但这不起作用,因为谷歌洞察力仍然显示相同的消息。

4

1 回答 1

0

您应该使用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

于 2016-05-08T16:22:21.513 回答