Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.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
Javascript 为JSP中链接的JS文件设置HTTP头以停止缓存_Javascript_Http_Cache Control - Fatal编程技术网

Javascript 为JSP中链接的JS文件设置HTTP头以停止缓存

Javascript 为JSP中链接的JS文件设置HTTP头以停止缓存,javascript,http,cache-control,Javascript,Http,Cache Control,我有一项任务要做,我现在很难完成。我需要停止缓存JS文件。我们有一个基于JSP的网站(局域网开发不足),它也有一些JS代码。如果我尝试在JSP或meta标记中设置HTTP头,JS文件仍然返回304状态代码 这是我的密码: 在JSP文件的开头- <% response.setHeader("Cache-Control","no-cache"); response.setDateHeader("Expires", 0); %> 内头标签

我有一项任务要做,我现在很难完成。我需要停止缓存JS文件。我们有一个基于JSP的网站(局域网开发不足),它也有一些JS代码。如果我尝试在JSP或meta标记中设置HTTP头,JS文件仍然返回304状态代码

这是我的密码:

在JSP文件的开头-

<% 
   response.setHeader("Cache-Control","no-cache");                
   response.setDateHeader("Expires", 0);
%>

内头标签-

 <meta http-equiv="cache-control" content="max-age=0" />
 <meta http-equiv="cache-control" content="no-cache" />
 <meta http-equiv="expires" content="-1" />
 <meta http-equiv="pragma" content="no-cache" />

 <script type='text/javascript' src='./cachetest.js'></script>

我已经找到了一种每次重新加载JS的方法,通过传递一个随机数或自epoch以来的时间作为参数-

<script type='text/javascript' src='./cachetest3.js?id=<%=timeSinceEpoch>'></script>

但这似乎是一种非常粗糙的方法,是不是有什么,我看了一下fiddler,JSP或HTML条目将有正确的头并获得200状态,但如果JS文件没有更改,我得到304


做这件事的好方法是什么

您不想继续停止缓存,还是不想在新版本中停止缓存(ppl可以加载修改后的js文件)?如果你对前者的回答是肯定的,我认为你做错了什么。缓存在大多数情况下都是你的朋友。是的,不,理想情况下这会有所帮助,但有一个问题,更改的JS文件没有得到反映,可能是因为部署后代理缓存没有得到刷新。我真的不知道我们如何在代理缓存中刷新JS文件。我认为你应该使用“资产指纹”,它几乎与?id=好的,是的,这很有意义,我可以试试。但是http头有什么办法可以解决这个问题吗?也许这是我指定的东西的替代品