关于浏览器缓存问题

一张图片,cache-control的max-age被设置为一年后,那么也就是说这一年内,浏览器会一直从缓存中取用这张图片,那么如果服务器在突然在某一天更新了这张图片,但是浏览器无从得知,那么服务器要怎样让浏览器自动更新?

如下图可以看到,在缓存过期前,该资源会一直从缓存取,而不会请求服务器

cache1.png

阅读 2.8k
3 个回答

Http状态码:304。用以标记源站内容是否变更。如果没有变更,则继续使用缓存,如果变更,则重新请求新的内容。

1.在url的查询参数中加入版本参数,例如:
http://url.com/?v=2333
浏览器会因为参数不同而向服务器发出请求,但是服务器是不会管你参数是不是一样,只要url是同一个,就会返回同一个文件。
2.可以在参数中加hash=hgfdxjkk.

有两种办法,一种是清除浏览器中的缓存,重新加载新的图片(不推荐);另一种是将修改的图片加上版本号,比如原来图片是111.jpg,修改后变成112.jpg,那么图片名变了,浏览器会重新加载新的图片。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题