我正在使用MVC4和C#创建一个Web应用程序。
我允许用户上传其个人资料照片的图片。此时,我需要先前的个人资料图片到期,以便当浏览器重新加载页面时,将显示新图像。目前,由于两个图像共享相同的名称,因此浏览器使用先前已缓存的图像而不是新图像。
如果我强制浏览器使用F5重新加载,则会显示新图像。如何确保返回其个人资料页面的用户在没有点击F5的情况下看到新图像而不是浏览器缓存中的图像?
答案 0 :(得分:7)
您可以在图像文件名的末尾添加虚拟参数。例如,
<img src="...\avatar.jpg?d=7615833">
其中数字是随机数或时间戳。它将被忽略,但存在将强制浏览器重新加载图像。
答案 1 :(得分:2)
在服务器上存储图像时,在文件名中添加(静态)随机文本位,并在图像更改时重新生成。这样,浏览器会在图像相同时对图像进行缓存,并在图像发生变化时重新加载,从而在不增加不必要的页面加载时间的情况下提供所需的行为。