如何解决如何防止浏览器缓存图像? [重复]
| 这个问题已经在这里有了答案:解决方法
另一种选择是在图像文件后面添加一个随机字符串。
<img src=\"/path/to/image/image.jpg?<?php echo time(); ?>/>
这应该确保每次显示页面时都重新加载图像。
,mnot的缓存指南很好,它将解释如何设置HTTP标头以请求不缓存图像(请记住,您需要为图像而不是HTML文档设置HTTP标头)。
尽管图像往往比较矮胖,但这可能不是一个好主意,因此为每个页面重新下载图像可能会导致性能显着下降。
,使用apache,您无法通过2种不同的方式实现这一目标:
使用mod_headers:
<FilesMatch \"\\.(png|jpg|jpeg|jpeg)$\">
Header set Expires \"Fri,04 Aug 1978 12:00:00 GMT\"
Header set Cache-Control \"no-cache,no-store,must-revalidate,max-age=0,proxy-revalidate,no-transform\"
Header set Pragma \"no-cache\"
</FilesMatch>
或使用mod_expires:
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/png A0
ExpiresByType image/gif A0
ExpiresByType image/jpg A0
ExpiresByType image/jpeg A0
</IfModule>
,如果您不能在Apache上设置缓存规则(如@David Dorvard的答案所建议-请参阅使用<Files
指令的部分),则可以通过PHP脚本通过管道传输图像,并设置自己的图像(否)在那里缓存标题:
<?php
header(\'Cache-Control: no-cache\');
header(\'Expires: 0\');
header(\'Content-Type: image/jpeg\'); // or whatever your image is
readfile(\'/some/path/to/yourfile.jpg\');
?>
这应该为您提供一张根本没有缓存的图像;强调应该,因为各种浏览器都被破坏了(IIRC IE6在链接为背景图像时仍会对其进行缓存,但值得庆幸的是,这种方式正在淘汰中)。
请注意,这种简单的方法将1)增加服务器的负载,因为它需要为图像请求启动PHP; 2)禁用脚本/图像上的部分下载
,如果您定位的是现代浏览器,则可以使用HTML5清单文件:http://diveintohtml5.ep.io/offline.html#network
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。