最近在优化线上的一个web站点,发现很多CSS和js按F5刷新的时候,不缓存,这个可是一个可以优化的点啊!
第一反映就是检查是否配置了缓存,用浏览器查看response header如下:
看到这个response header 就更加让人奇怪了,明明配置了缓存,也配置了过期时间,为什么按F5刷新页面没有出现304 Not modify ?
然后想到找个缓存了的来对比下,正常缓存的response header如下:
比较发现,能够正常缓存的response header中多了ETag和Last-Modified这两个field。由此,在本地测试环境中,去掉这两个field.
在Apache的http.conf中加入如下配置:
<IfModule mod_headers.c>
Header append Vary User-Agent env=!dont-vary
Header unset ETag
Header