我几乎没有警告我要在pagespeed测试中解决,例如:
利用浏览器缓存
在静态资源的HTTP标头中设置到期日期或最长期限,指示浏览器从本地磁盘而不是通过网络加载以前下载的资源。
然后它指出本地的.js和.css文件
但我在我的htaccess中有这个:
<FilesMatch "\.(js|css|ttf)$">
Header set Cache-Control "max-age=604800, public"
</FilesMatch>
<FilesMatch "\.(ico|pdf|flv|jpg|jpeg|png|gif|swf)$">
Header set Cache-Control "max-age=604800, public"
</FilesMatch>
<FilesMatch "\.(html|htm|php)$">
Header set Cache-Control "max-age=60, private, proxy-revalidate"
</FilesMatch>
<FilesMatch "\.(css|js|gif|jpeg|png|ico)$">
ExpiresActive On
ExpiresDefault "access plus 1 year"
</FilesMatch>
知道我做错了吗?
答案 0 :(得分:0)
嗯,这是一个黑暗中的镜头,但我遇到了Apache不尊重我的.htaccess
标题的情况,我不得不用always
关键字强制它们:
<FilesMatch "\.(js|css|ttf)$">
Header always set Cache-Control "max-age=604800, public"
</FilesMatch>
<FilesMatch "\.(ico|pdf|flv|jpg|jpeg|png|gif|swf)$">
Header always set Cache-Control "max-age=604800, public"
</FilesMatch>
<FilesMatch "\.(html|htm|php)$">
Header always set Cache-Control "max-age=60, private, proxy-revalidate"
</FilesMatch>
<FilesMatch "\.(css|js|gif|jpeg|png|ico)$">
ExpiresActive On
ExpiresDefault "access plus 1 year"
</FilesMatch>
当您的操作是现有标头的函数时,您可能需要指定始终的条件,具体取决于设置原始标头的内部表。始终对应的表用于本地生成的错误响应以及成功的回应。另请注意,在某些情况下重复使用这两个条件的指令是有意义的,因为对于现有标题,始终不是onsuccess的超集:
- 您正在为本地生成的非成功(非2xx)响应添加标头,例如重定向,在这种情况下,只会在最终响应中使用与always相对应的表。
- 您正在修改或删除由CGI脚本生成的标头,在这种情况下,CGI脚本位于表中,始终对应于默认表,而不是默认表。
- 您正在修改或删除某些服务器生成的标头,但默认的onsuccess条件未找到该标头。