0

我正在使用可怕的 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
4

1 回答 1

-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 认为没有过期标头的文件之一的结果吗?您是否有显示问题的可公开访问的链接?

于 2012-07-23T19:22:59.570 回答