我有一个常见的问题,当用户更改其个人资料图片时,它不会立即显示在网页上,他们将继续看到旧版本,直到浏览器决定放弃缓存版本。
此问题的常见解决方案是添加一些唯一的查询字符串,以便浏览器不会缓存它,例如img.png?cache-breaker=rjqwrj0
。
这给我带来了另一个问题 - 它被记录在Web服务器的访问日志中,当它们被解析时,每个请求都被计为一个单独的资源,实际上它正在请求具有不同查询的相同资源字符串。
客户端是否有任何特定的解决方案,我可以告诉浏览器明确删除用户即将上传的图像缓存,以便在页面刷新时再次下载?
答案 0 :(得分:2)
<img src="img.png?lastmod=yourtimeinnumbers"...
它将为img提供缓存选项而不会丢弃浏览器缓存
答案 1 :(得分:0)
可能您可以对配置文件pic文件进行版本控制。像v=0.1
这样的常用版本控制可以暴露用户更改其图片的次数,因此最好使用uuid。每次用户上传新图像时,请更改uuid。
img.png?v=<some generated uuid>
这样,每个文件更改都会获得一个新的URL。