WordPress优化之Specify a cache validator

在【WordPress优化之Gzip压缩CSS和Js文件】一文中说道可以通过php对CSS和JS文件进行Gzip压缩,其核心是使用ob_gzhandler,不过这种方法要求服务器启用zlib拓展。相信主流国外虚拟主机都支持吧!

然而,成功实现通过php对CSS和JS文件进行Gzip压缩后,用PageSpeed检测网页时发现新增了一个问题:Specify a cache validator

Specify a cache validator

Specify a cache validator(文件具体路径已被隐去)

The following resources are missing a cache validator. Resources that do not specify a cache validator cannot be refreshed efficiently. Specify a Last-Modified or ETag header to enable cache validation for the following resources


大意是:下面的文件(指*.css.php和*.js.php)丢失了缓存验证组件,请指明Last-Modified header或者ETag header。看来这是由于新增的php类型文件被浏览器缓存后(参【给静态内容设置浏览器端缓存:Leverage browser caching】一文)无法及时更新。解决方法如下(以指定Last-Modified header为例):

在.htaccess文件中添加以下代码:

<IfModule mod_headers.c>
    <FilesMatch "\.(php)$">
        Header set Last-Modified "Tue, 31 Aug 2010 00:00:00 GMT"
    </FilesMatch>
</IfModule>

“Tue, 31 Aug 2010 00:00:00 GMT” 表示php文件上一次更新的时间,可以自定义,但必须是过去的一个时间。保存文件,刷新页面,用PageSpeed测试,问题已被解决。那么能否指定ETag 而不是Last-Modified header呢?当然可以,但是不推荐,甚至强烈建议将ETag 去掉:

FileETag none

其中缘由参见下一篇文章:

【cache validator之Last-Modified和ETag】

  3Comments

  1. neal   •  

    打开速度真鸡巴块! :evil:

    • Jeriff Cheng   •     Author

      那是,经过我的层层优化,连PHP都静态化了很多

  2. 小羿   •  

    各种优化。。。。最近俺的站速度也是非常快

Leave a Reply

Your email address will not be published. Required fields are marked *