我正在建立一个网站,其中各种css精灵使用。但我的问题是,当我对上传的图像进行任何更改时,有时它不会反映在客户端浏览器上,因为有时页面及其数据,如css,图像,javascripts是从浏览器缓存中加载的。
在这种情况下,请建议我怎么做。我应该把这些放在
<meta http-equiv='cache-control' content='no-cache'>
<meta http-equiv='expires' content='0'>
<meta http-equiv='pragma' content='no-cache'>在HTML页面中?
或者有什么想法来解决这个问题?
发布于 2014-06-05 12:58:56
您还应该检查页面发送的标头。缓存可能是一个令人头疼的问题,因为当浏览器面对服务器端的缓存头时,通常会以不同的方式处理您所拥有的HTML缓存标记。
检查您是否是Unix/Linux机器的最好方法是使用带有-I参数的curl。例如,以下是用来检查Google时curl -I的输出:
curl -I https://www.google.com/
HTTP/1.1 200 OK
Date: Thu, 05 Jun 2014 04:59:23 GMT
Expires: -1
Cache-Control: private, max-age=0
Content-Type: text/html; charset=ISO-8859-1
Set-Cookie: PREF=ID=926cae6eb35d6ed1:FF=0:TM=1401944363:LM=1401944363:S=QXyixlyAVYyBE4TK; expires=Sat, 04-Jun-2016 04:59:23 GMT; path=/; domain=.google.com
Set-Cookie: NID=67=DxR2KWNdGhQ_u3QCtFUK1TH4dTmef-FfFP67FZiKFDIFJqsdYMPo-3w3mqGD4Iag2t-c-ae1LiNrcX4JslRsxWYCqhBvu0g0tEUA4dKpb07keOkXsAG7uBLynWvN3wzA; expires=Fri, 05-Dec-2014 04:59:23 GMT; path=/; domain=.google.com; HttpOnly
P3P: CP="This is not a P3P policy! See http://www.google.com/support/accounts/bin/answer.py?hl=en&answer=151657 for more info."
Server: gws
X-XSS-Protection: 1; mode=block
X-Frame-Options: SAMEORIGIN
Alternate-Protocol: 443:quic
Transfer-Encoding: chunked注意Expires: -1,这基本上意味着页面不会被缓存。现在查看Google徽标PNG图像的标题:
curl -I https://www.google.com/images/srpr/logo11w.png
HTTP/1.1 200 OK
Content-Type: image/png
Content-Length: 14022
Last-Modified: Wed, 09 Oct 2013 01:35:39 GMT
Date: Thu, 05 Jun 2014 04:56:40 GMT
Expires: Thu, 05 Jun 2014 04:56:40 GMT
Cache-Control: private, max-age=31536000
X-Content-Type-Options: nosniff
Server: sffe
X-XSS-Protection: 1; mode=block
Alternate-Protocol: 443:quic请注意该图像如何具有更具体的Cache=Control和Expires:设置。
因此,我建议您对有问题的内容使用curl -I。可能有一个服务器设置阻碍了您的HTML更新,它只能在服务器级别上被真正覆盖。
https://stackoverflow.com/questions/24051311
复制相似问题