所以,我有 Yslow,我正在尝试添加 Expires header 。
所以我在网站的根目录下有一个 .htaccess
:
<ifModule mod_expires.c>
ExpiresActive On
ExpiresDefault "access plus 1 seconds"
ExpiresByType text/html "access plus 1 seconds"
ExpiresByType image/gif "access plus 2592000 seconds"
ExpiresByType image/jpeg "access plus 2592000 seconds"
ExpiresByType image/png "access plus 2592000 seconds"
ExpiresByType text/css "access plus 604800 seconds"
ExpiresByType text/javascript "access plus 216000 seconds"
ExpiresByType application/x-javascript "access plus 216000 seconds"
ExpiresByType application/javascript "access plus 216000 seconds"
</ifModule>
<ifModule mod_headers.c>
<filesMatch "\\.(ico|pdf|flv|jpg|jpeg|png|gif|swf)$">
Header set Cache-Control "max-age=2592000, public"
</filesMatch>
<filesMatch "\\.(css)$">
Header set Cache-Control "max-age=604800, public"
</filesMatch>
<filesMatch "\\.(js)$">
Header set Cache-Control "max-age=216000, private"
</filesMatch>
<filesMatch "\\.(xml|txt)$">
Header set Cache-Control "max-age=216000, public, must-revalidate"
</filesMatch>
<filesMatch "\\.(html|htm|php)$">
Header set Cache-Control "max-age=1, private, must-revalidate"
</filesMatch>
</ifModule>
我启用了 mod_headers 和 mod_expires :
root@heisenberg:~# a2enmod headers
Module headers already enabled
root@heisenberg:~# a2enmod expires
Module expires already enabled
但没有效果,我对 Yslow 总是“F”...我能做些什么呢?我已经阅读了 stackoverflow 的其他主题....
谢谢!
最佳答案
当遇到类似问题时,以下链接帮助我在 Apache 上设置过期 header 。
http://www.simonwhatley.co.uk/how-to-set-an-expires-header-in-apache .
在 httpd.conf 的项目配置中的文档模块中添加 ExpiresActive On 之前和 ExpiresByType 对我来说是个窍门。
也许这对你也有帮助。
此外,我不需要将 Cache-Control 添加到 header 。它们被自动添加到标题中。我不是专业人士,但这是我观察到的。
关于apache - Yslow,添加过期 header 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18741351/