可能mod_expire与Wordpress更新冲突?

时间:2013-03-21 12:02:07

标签: wordpress apache .htaccess caching mod-expires

我想使用mod_expire在用户的浏览器中缓存我的Wordpress博客的内容,从而增加我在YSlow和Google Pagespeed的排名。所以我想使用类似下面的配置。

Header unset ETag
FileETag None

<IfModule mod_expires.c>
ExpiresActive On
ExpiresDefault A0
<FilesMatch ".(ico|jpg|png|gif|css|js|gz)$">
ExpiresDefault A2592000
Header append Cache-Control "private"
</FilesMatch>
</IfModule>

但是,现在出现了以下问题。如果插件代码中断并且插件开发人员发布更新怎么办?我将下载并安装到我的博客,但插件中损坏的.js文件由用户的浏览器缓存。
在缓存时间到期之前,用户是否会查看我的页面视图?或者是否会自动从插件的更新中获得新页面的服务?

2 个答案:

答案 0 :(得分:1)

您的担忧是成立的:浏览器确实会继续使用缓存(可能过时)的副本,直到它按照您的配置到期为止。

以下是Expires vs. Last-Modified / ETag的a helpful summary,包括一些建议的最佳做法。

一般来说,在你的情况下(因为你似乎关心插件更新)我会选择ETag / Last-Modified而不是Expires。

另一个想法:您不需要将js文件与所有其他类型捆绑在一起。只是一种启发式方法,但它可能有所帮助:

# can be safely cached
<FilesMatch ".(ico|jpg|png|gif|css|gz)$">
    ExpiresDefault now plus 30 days
    FileETag None
    Header unset ETag
</FilesMatch>

# don't cache or only cache briefly
<FilesMatch ".js$">
    FileETag MTime Size
    # or: ExpiresDefault now plus 6 hours
</FilesMatch>

答案 1 :(得分:0)

这个脚本只是缓存,ico,jpg,png,gif,css,js,gz文件不是html。 Wordpress会很好。

如果您遇到客户端js崩溃,请不要缓存js。 或者再次重新运行它并将js设置为缓存一小段时间,如14400秒。