山仔's blog山仔's blog

YSlow优化之Add Expires headers

Add Expires headers,就是向文档添加一个有效期,告诉浏览器这个文档的有效性和持久性。如果已有缓存,文档就可以从浏览器中的缓存(除已经过期)而不是从服务器读取。接着,客户端验证缓存中的副本,看看是否过期或者失效,以决定是否必须从服务器获得更新。简单来说就是优化了这项可以加快网站速度,对于不经常更新的文件,例如CSS、图片文件都很有用,下次访问就直接从浏览器读取而不用向服务器下载。

添加方法很简单,编辑.htaccess文件添加以下代码就可以了,注意第二行的ExpiresDefault "access plus 30 days",表示所有文档默认有效期为30天,但可以被具体文档设定的有效期改变,例如我第三行的CSS文件就设定有效期为一年。


ExpiresActive On
ExpiresDefault "access plus 30 days"
ExpiresByType text/css   "access plus 1 years"
ExpiresByType text/html  "access plus 1 years"
ExpiresByType image/gif  "access plus 1 years"
ExpiresByType image/jpeg "access plus 1 years"
ExpiresByType image/jpg  "access plus 1 years"
ExpiresByType image/png  "access plus 1 years"
ExpiresByType image/x-icon "access plus 1 years"
ExpiresByType application/x-javascript "access plus 30 days"

这个缓存只对本地服务器上的文档有效,像我这样外链有gravatar、google等的文件都是无效的,外链服务器设定他们的有效期只有5分钟,YSlow优化建议添加更长的时间,所以评分还是F。本博客首页跑分只有87分,还差3分才能达A。其它具体设置请按需自行设置,更多用法请参考:Apache Module mod_expiresMIME 参考手册

本文遵循 BY-NC-SA 3.0 协议. 转载请注明转自 | 当前页面:山仔's blog » YSlow优化之Add Expires headers

评论 7

  1. 技术类的活,我快速飘过!

    宝佑博客 2012-04-06    回复
  2. 我不懂技术呀

    分享元素 2012-04-08    回复
  3. 这个还真没用过

    集趣 2012-04-08    回复
  4. 技术文章啊!

    Aliaosha 2012-04-08    回复
  5. 更新快的动态网站就麻烦了

    谷子猫 2012-04-08    回复
  6. 一般的博客也没必要追求评分!其实也没有多大的用处,是吧!最多有点成就感!

    chonghua 2012-11-04    回复
  7. @chonghua
    确实没必要,就感觉好而已。

    2012-11-07    回复