更新后重新加载缓存图像

时间:2017-11-08 11:45:27

标签: javascript php caching

我想在更新后重新加载缓存的图像 我用时间戳创建了它,如下所示:

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

但是这张图片以多页显示,我必须为所有人设置time()。 这个time()更改了图片的网址,因此每次加载的图片都会重新加载,就好像它不是一样。

我的图片可以从多个用户更新。如果我在每次重新加载时为所有图像的URL设置time(),则会影响性能。

2 个答案:

答案 0 :(得分:0)

time()会返回当前时间,因此每次加载页面时都会有所不同,并且无法执行您想要的操作。

如果您的框架具有用于对静态资产进行版本控制的系统,则应使用该系统。否则,您可以使用filemtime(),它返回文件上次更改的时间戳,如下例所示:

<img src="<?=$path?>?v=<?=filemtime($path)?>">

这样,只有在文件的时间戳发生变化时才会改变。

答案 1 :(得分:0)

如果您正在使用任务运行程序,例如Grunt,Gulp或其他类似程序,您可以添加任务以将图像内容的哈希值添加到其文件名中,以及更新引用images / css /的文件JS /...

(您还可以优化图像以完全自动化工作流程。)

Grunt - grunt-cache-bust

Gulp - gulp-cachebust