允许在页面上缓存,但请确保不缓存图像


Allow caching on page, but make sure images are not

我正在建立一个允许用户上传图像的网络网站。

当一个用户(user1)查看另一用户(user2)的配置文件页面时,通常会显示缓存的图像,而不是用户2最近上传的新图像。

我不能设置标题来阻止缓存,因为网站的设计对网站上的所有页面都有一个通用的标题/菜单/导航,这将对带宽/网站性能产生非常显著的影响。

因此,我的问题是:

使用PHP、JavaScript、HTML或内联CSS标记,有没有办法防止单个图像被缓存?或者确保它们在每个页面视图中都是新加载的?

理想情况下,您应该相应地设置服务器以发送正确的标头。

一个快捷方法是让你的PHP页面在图像URL的末尾输出一个随机数或时间戳:

<img src="yourimage.jpg?<?php echo time(); ?>" />

尽可能使用模板引擎或其他工具将PHP与图像分离。

第三种选择是使用PHP脚本返回图像,并在那里设置标题。

试试这个:

<img src="image.jpg?<?php echo time(); ?>" />