如何从服务器而不是缓存加载图像?

时间:2015-09-16 20:16:56

标签: html image browser-cache

我的网站上有一些图像会不时发生变化。

问题是浏览器从缓存加载旧图像。

如何告诉浏览器始终从服务器而不是缓存加载图像?

3 个答案:

答案 0 :(得分:2)

您可以更改图像的src以包含无用的随机数:

  

编辑:使用当前时间戳来确保它永远不会相同,   但基本上做同样的事情。



var imgs = document.getElementsByClassName('yourimageclassname');

for (var i = 0; i < imgs.length; i++) {
  var num = Math.random();
  imgs[i].src = imgs[i].src + '?' + num;
}

document.getElementById('result').value = imgs[0].src;
&#13;
<input type="text" id="result" style="width:100%;" />

<img class="yourimageclassname" src="http://www.google.com/images/branding/googlelogo/2x/googlelogo_color_272x92dp.png" />
&#13;
&#13;
&#13;

答案 1 :(得分:1)

你可以做的是在src =“img.jpg”上使用这种版本控制使用这样的

always_comb begin
  foreach(xin[idx0,idx1]) begin
    xin_rotate[idx1][idx0] = xin[idx0][idx1];
  end
  foreach(xout[idx0,idx1]) begin // rotate back
    xout[idx0][idx1] = xout_rotate[idx1][idx0];
  end
end
for (i=0;i<=7;i=i+1) begin : block1
  module1 #(.n(n)) l1(.xin(xin_rotate[i]),.xout(xout_rotate[i]));
end : block1

12354636512这个数字应该是不同的,所以你可以使用当前时间来为你的图像网址添加这样的独特版本。浏览器会认为这与已下载到temp的内容不同,并会再次请求它。

答案 2 :(得分:0)

这取决于您使用的Web服务器,nginx,apache2,node ...

在此Web服务器的配置中,只需设置图像控件(png,jpg)。 Nginx:

location ~* \.(js|css)$ {
        expires 1d;
    }

一个小小的工作是每次新的字符串(基于时间)附加到图像,因此浏览器会将图像看作新图像:<img src="picture.jpg?20130910043254">