Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
绕过缓存的HTML链接?_Html_Caching_Browser_Hyperlink - Fatal编程技术网

绕过缓存的HTML链接?

绕过缓存的HTML链接?,html,caching,browser,hyperlink,Html,Caching,Browser,Hyperlink,我有一个从我的网站链接到的文件,如 <a href="http://example.com/myfile.txt>View!</a> 但是,此文件更改非常频繁,单击链接时,浏览器将加载文件的缓存版本,而不是实际文件。 有没有一种方法可以让点击该链接绕过该页面的缓存 像这样的好东西是一厢情愿的想法。在超链接后添加一个随机数,例如 每次加载页面时生成一个新的随机数 像这样美好的事情是一厢情愿的 实际上,您可以在链接中执行以下操作:添加一个随机GET参数 <a hr

我有一个从我的网站链接到的文件,如

<a href="http://example.com/myfile.txt>View!</a>

但是,此文件更改非常频繁,单击链接时,浏览器将加载文件的缓存版本,而不是实际文件。 有没有一种方法可以让点击该链接绕过该页面的缓存


这样的好东西是一厢情愿的想法。

在超链接后添加一个随机数,例如

每次加载页面时生成一个新的随机数

像这样美好的事情是一厢情愿的

实际上,您可以在链接中执行以下操作:添加一个随机GET参数

<a href="http://example.com/myfile.txt?a=193834923283943842923">View!</a>

您可以使用JavaScript(当然也可以是像PHP这样的服务器端脚本语言)在动态的基础上实现这一点

然而,更好的方法是首先在服务器端正确配置文本文件的缓存头。从.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>

FileTag无
标题未设置ETag
标题设置缓存控制“存储,无缓存,必须重新验证,后检查=0,预检查=0”
标题集Pragma“无缓存”
标题集过期“1978年11月19日星期日05:00:00 GMT”

最好的方法是告诉apache/(web服务器)告诉浏览器不允许缓存该文件,如果您无法控制该服务器,您可以通过更改发送给它的参数来避免缓存,只需在后面添加一些数字?例如,创建链接的时间,这会使每个url不同,因此,浏览器将忽略缓存,但所有指向同一文件的链接,只要服务器忽略额外的参数。在php中:

echo "<a href='http://example.com/myfile.txt?" . time() . "'>View!</a>"
echo“”

您可以在服务器级别解决问题。设置适合您需求的txt资源(或特定资源)的特殊过期日期。 如果您使用apache,您可以在此处阅读有关apache的内容

<meta http-equiv="expires" content="0">


进入目标页面的标题部分,然后再次检查

,但我不是总是更新文件的人。这意味着我必须让每个编辑文件的人都可以访问,并指示他们生成随机数。不幸的是,我已经在使用php,所以你的time()工作得非常好不!切勿添加随机参数以避免缓存。若您使用的是Varnish之类的缓存代理,那个么您将用永远不会使用的无用条目填充缓存。您应该使用缓存控制和Pragma头参数