我想在更新后重新加载缓存的图像 我用时间戳创建了它,如下所示:
echo "<img src=../thumbnail.jpg?" . time() . ">";
但是这张图片以多页显示,我必须为所有人设置time()
。
这个time()
更改了图片的网址,因此每次加载的图片都会重新加载,就好像它不是一样。
我的图片可以从多个用户更新。如果我在每次重新加载时为所有图像的URL设置time()
,则会影响性能。
答案 0 :(得分:0)
time()
会返回当前时间,因此每次加载页面时都会有所不同,并且无法执行您想要的操作。
如果您的框架具有用于对静态资产进行版本控制的系统,则应使用该系统。否则,您可以使用filemtime()
,它返回文件上次更改的时间戳,如下例所示:
<img src="<?=$path?>?v=<?=filemtime($path)?>">
这样,只有在文件的时间戳发生变化时才会改变。
答案 1 :(得分:0)
如果您正在使用任务运行程序,例如Grunt,Gulp或其他类似程序,您可以添加任务以将图像内容的哈希值添加到其文件名中,以及更新引用images / css /的文件JS /...
(您还可以优化图像以完全自动化工作流程。)
Grunt - grunt-cache-bust
Gulp - gulp-cachebust