我正在使用可怕的yslow,并且有39个静态组件,没有远期到期日期。消息向我开出。
我已经关注了一些教程/回复,并在我的httpdocs / .htaccess
中提出了这个问题。#Expire Header
ExpiresActive On
<FilesMatch "\.(ico|jpg|jpeg|png|gif|js|css|swf)$">
ExpiresDefault "access plus 6 months"
Header append Cache-Control public
</FilesMatch>
然而,文件全部存储的目录是疯狂的,例如,我有这些。例如。
httpdocs/mpu/
httpdocs/css/
httpdocs/images/
httpdocs/js/
httpdocs/favicon.ico
httpdocs/mph/
httpdocs/min/
httpdocs/js/sliders/
httpdocs/js/gallery/
依此类推,我不完全确定FilesMatch表达式是否会捕获所有子目录文件?
如果他们这样做,那么任何人都可以看到我的上述片段仍然说它没有远期到期日期的原因。
编辑:这是来自Chrome的标题回复
Request Headers
Accept:*/*
Accept-Charset:ISO-8859-1,utf-8;q=0.7,*;q=0.3
Accept-Encoding:gzip,deflate,sdch
Accept-Language:en-US,en;q=0.8
Cache-Control:no-cache
Connection:keep-alive
Pragma:no-cache
User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.57 Safari/536.11
Response Headers
Accept-Ranges:bytes
Cache-Control:max-age=15552000, public
Connection:close
Content-Length:3597
Content-Type:image/png
Date:Mon, 23 Jul 2012 10:49:43 GMT
Expires:Sat, 19 Jan 2013 10:49:43 GMT
Last-Modified:Thu, 21 Jun 2012 16:46:19 GMT
Server:Apache
X-Powered-By:PleskLin
答案 0 :(得分:-1)
如果您认为您的FilesMatch选择器不起作用,您还可以使用ExpiresByType指令进行测试:
ExpiresActive on
ExpiresByType image/gif "access plus 1 week"
ExpiresByType image/jpeg "access plus 1 week"
ExpiresByType image/png "access plus 1 week"
ExpiresByType image/x-icon "access plus 1 year"
查看您添加的标头,该文件至少显示 正确设置缓存控件:
Cache-Control:max-age=15552000, public
Date:Mon, 23 Jul 2012 10:49:43 GMT
Expires:Sat, 19 Jan 2013 10:49:43 GMT
max-age参数15552000等于6个月,Expires标题为今天+ 6个月。
YSlow认为其中一个文件的结果是否有过期标题?您是否有可以公开访问的链接来展示问题?