无论我做什么,JavaScript文件都不会更新
我有一个外部JavaScript文件,无论是在FireFox还是Chrome中,无论是否清除了所有浏览数据,它都不会更新。我相信当我备份我的文件时发生了一些事情,我只是在名字的末尾加上了“_thedate”。然后另存为返回到原始名称 现在,我似乎无法摆脱旧的JS,除非我更改文件名(我真的不想这么做),或者将脚本添加到PHP页面中(这会导致页面拥挤)无论我做什么,JavaScript文件都不会更新,javascript,windows,browser,Javascript,Windows,Browser,我有一个外部JavaScript文件,无论是在FireFox还是Chrome中,无论是否清除了所有浏览数据,它都不会更新。我相信当我备份我的文件时发生了一些事情,我只是在名字的末尾加上了“_thedate”。然后另存为返回到原始名称 现在,我似乎无法摆脱旧的JS,除非我更改文件名(我真的不想这么做),或者将脚本添加到PHP页面中(这会导致页面拥挤) 有人知道这个问题的解决方案吗?您确定要链接到同一个文件,然后编辑同一个文件吗 在某些浏览器上,可以使用CTRL F5强制刷新(在电脑上)。在Mac上
有人知道这个问题的解决方案吗?您确定要链接到同一个文件,然后编辑同一个文件吗 在某些浏览器上,可以使用CTRL F5强制刷新(在电脑上)。在Mac上,它是Cmd Shift R Firebug还有一个带有“禁用浏览器缓存”的网络选项卡 但我想在此提出一个警告:即使您可以硬刷新,您如何知道您的客户正在获得最新版本?因此,你需要检查,而不仅仅是确保你和你的项目经理可以做一个硬刷新,只是回家拿下个月的工资支票。如果你想做一项让世界变得更好的工作,或者让世界比你发现的更好一点,你需要进行更多的调查,以确保它也能为你的客户服务(或者,有时客户可能会打电话给技术支持,技术支持可能会读到“清除cookies,它就会工作”的脚本,这是我有时会遇到的情况)。本文底部的一些方法可以确保客户获得最新版本 2020年更新: 如果您正在使用Chrome,并且DevTools处于打开状态,您可以单击并按住地址栏前面的刷新图标,将弹出一个框,您可以选择“硬加载”甚至“空缓存和硬加载”: 2017年更新: 如果您使用Google Chrome调试器,也一样,您可以转到网络部分,确保在调试器面板的设置中选中“禁用缓存(当DevTools打开时)” 另外,在链接JavaScript文件时,使用
<script src="my-js-file.js?v=1"></script>
某些构建工具将自动为您执行此操作,或者可以配置为执行此操作,使其类似于:
<script src="main.742a4952.js"></script>
这实际上会破坏缓存
注意当您使用
v=2
或t=1491313943549
或main.742a4952.js
时,您还有一个优势,即对于您的用户来说,他们肯定也会得到更新的版本。在标记中添加“?2”怎么样
服务器应返回带或不带“?2”的相同文件,但浏览器应将其视为不同的文件并重新下载。只要更改文件,就可以更改此查询字符串
改编自:您是否100%确定浏览器正在加载脚本?转到Firefox中的页面,使用Firebug中的控制台检查脚本是否已加载。我以前遇到过这个问题,非常令人沮丧,但我找到了解决方法。输入js文件的完整地址(即yourhost.com/javascript.js)并加载它。您可能会看到旧版本的加载。然后点击f5刷新该页面,您将看到新版本的加载。js文件现在将在缓存中更新,代码应按预期运行。暂时将js文件重命名为其他文件。这是唯一对我有效的方法。我使用的解决方案是。 使用firefox
1.使用web开发人员-->web控制台
2.在“新建”选项卡中打开java脚本文件。
3.刷新新选项卡,您将看到新代码。
4.刷新原始页面
5.您应该可以看到您的更改。
浏览器缓存的最佳方法是在js文件的路径中附加一个随机数 伪代码中的示例:
// generate a random number
int i = Random.Next();
echo "<script src='a.js?'" + i + "></script>";
//生成一个随机数
int i=Random.Next();
回声“;
这将确保您的浏览器始终重新加载该文件,因为它认为它是一个不同的文件,因为url中有随机数
服务器将始终返回文件并忽略“?”后面的内容。我有一段时间遇到了同样的问题,并设法解决了。。。我的情况是因为我有两个相同函数名的javascript 派对有点晚了,但是如果你把它放在你的html中,它会阻止你的网站更新缓存。加载网站需要更长的时间,但出于调试目的,我喜欢它。从这个答案中可以看出:
我遇到了这个问题,在Chrome中通过禁用缓存解决了这个问题: -点击F12; -进入网络标签;
-单击“禁用缓存”。1.在浏览器开发人员工具中清除浏览器缓存 2.在网络选项卡下–选择禁用缓存选项 3.重新启动浏览器 4.在mac中强制重新加载Js文件命令+shift+R
确保在服务器端正确部署了fresh war我试图刷新我的js文件,这简直是疯了,我什么都试过了。然后我做了一个标题检查,记得我使用的是Cloudflare
在Cloudflare中,可以使用开发模式禁用代理 不要忘记检查网页包编译中的任何错误。有时,app/javascript/packs/中的application.js由于网页包编译错误而无法重新加载。在Firefox和Chrome中,这真的很烦人,但因为它们的默认设置可以通过以下方式更改,然后才能正常工作。我试着在Chrome和Firefox中使用相同的步骤顺序
他们会在重新下载资源时使用新副本更新资源。尝试使用Fiddler查看您是否正在下载文件以及内容是否正确。尤米
// generate a random number
int i = Random.Next();
echo "<script src='a.js?'" + i + "></script>";
<meta http-equiv='cache-control' content='no-cache'>
<meta http-equiv='expires' content='0'>
<meta http-equiv='pragma' content='no-cache'>