3

您好,我有一个动态创建图像的 php 文件。基本上它在img. 我在 html 中这样称呼他们没有问题

<img src="img.php?session=<?php echo $session; ?>" />
<img src="img.php?session=<?php echo $session; ?>" />

现在,如果服务器上的图像发生变化,并且我再次从 html 调用它,图像没有改变,我必须刷新整页才能看到新图像。[编辑] 我还注意到它在 Chrome 上运行正常。我只有在 Firefox 有这个问题,它就像在 igonring<meta http-equiv="Cache-Control" content="no-cache/>

4

4 回答 4

2

这与您的 PHP 无关,而与您的浏览器有关。浏览器正在缓存图像,因此需要完全刷新。head您应该可以通过在 HTML标记之间添加它来解决此问题

 <meta http-equiv="CACHE-CONTROL" content="NO-CACHE" />

编辑 看起来有另一个http-equiv可以做同样的事情:

 <meta http-equiv="Pragma" content="no-cache" />
 <meta http-equiv="Expires" content="-1" />
于 2012-07-02T09:18:18.660 回答
1

我采用的解决方案如下。

var ts = Math.round((new Date()).getTime() / 1000);
<img src="img.php?session=<?php echo $session; ?>&time=' + ts + '" />
于 2012-07-02T10:02:28.760 回答
1

您可以No Cache使用header().

于 2012-07-02T09:18:30.120 回答
1

在图片源末尾添加一个随机数,那么它会一直从服务器获取图片,因为它在缓存中找不到。

于 2012-07-02T09:24:17.403 回答