F5刷新浏览器不缓存静态资源

在优化web站点时,发现F5刷新页面导致CSS和js不被缓存。检查发现配置了缓存但未生效,问题出在ETag和Last-Modified字段。去除这两个字段后,按F5不再缓存资源。实际上,F5刷新会绕过本地缓存,通过服务器协商确定是否使用304 Not Modified状态码来使用本地资源。
摘要由CSDN通过智能技术生成

最近在优化线上的一个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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值