我有一个链接到我网站的文件,如
<a href="http://example.com/myfile.txt>View!</a>
但是,此文件经常更改,单击链接时,浏览器会加载文件的缓存版本,而不是实际文件。 有没有办法点击该链接会绕过该页面的缓存?
像<a bypassCache href="">
这样的好东西会是一厢情愿的想法。
答案 0 :(得分:23)
好像是一厢情愿的想法。
确实,您可以在链接中执行以下操作:添加随机GET参数。
<a href="http://example.com/myfile.txt?a=193834923283943842923">View!</a>
您可以使用JavaScript(或者当然是像PHP这样的服务器端脚本语言)来动态地执行此操作。
然而,最好的方法是在服务器端的第一个位置正确配置文本文件的缓存头。从Best way to disable client caching窃取标题信息,这样的.htaccess文件应该有效:
<Files myfile.txt>
FileETag None
<IfModule mod_headers.c>
Header unset ETag
Header set Cache-Control "store, no-cache, must-revalidate, post-check=0, pre-check=0"
Header set Pragma "no-cache"
Header set Expires "Sun, 19 Nov 1978 05:00:00 GMT"
</IfModule>
</FilesMatch>
答案 1 :(得分:3)
最好的方法是告诉apache /(web服务器)告诉浏览器不允许缓存该文件,如果你没有控制该服务器,你可以通过改变发送给它的参数来避免缓存,只需添加一些数字背后?,例如,当您创建链接时,这会使每个URL不同,因此浏览器将忽略缓存,但所有链接指向同一文件,只要服务器忽略额外参数。在php:
echo "<a href='http://example.com/myfile.txt?" . time() . "'>View!</a>"
答案 2 :(得分:3)
刚刚放
<meta http-equiv="expires" content="0">
进入目标页面的头部并再次检查
答案 3 :(得分:0)
在超链接后添加一个随机数,例如<a href="http://example.com/myfile.txt?rand=12312321321">View!</a>
每次加载页面时生成一个新的随机数。
答案 4 :(得分:0)
您可以在服务器级别解决问题。设置适合您要求的txt资源(或特定资源)的特殊到期日期。 如果你使用apache,你可以在这里阅读关于apache的mod_expiry