2017-03-08 35 views
4

我在这里坐了近一个小时来测试我正在建设的网站。因为我想看看我重新加载的代码中的新更改,但它正在重新加载旧代码。我打开了devetools以重新加载并且empy缓存重新加载,它们都加载了我的旧代码。我进入了隐身模式,它也做了同样的事情。我又去devtools从设置中禁用了缓存,并在网络选项卡中检查了禁用缓存;它仍然缓存我的旧代码。清除缓存的附加组件也不起作用。男人,我以前没有遇到过这个问题,而且昨晚才发生,今天是最糟糕的。Chrome无法识别我对JavaScript文件的更改并加载旧代码?

因为chrome不会从我的JavaScript文件加载我的新更改,所以我现在已经迷路了。有没有解决方案?

+0

从devtools打开文件并检查它是否是当前的,这将打开它的最后一个版本并更新缓存。如果它是旧的,那么它没有被缓存,你只是没有保存/导出/移动文件到你正在阅读的文件夹。 – LordNeo

+0

'' – mplungjan

+3

如果仍然加载旧代码,我的猜测是服务器_is_服务于旧代码。 – robertklep

回答

6

此问题的一个解决方案是强制重新加载资源以避免缓存。你可以得到这个修改URL使用HTTP GET参数:

变化:

<script src="myscripts.js"></script> 

到:

<script src="myscripts.js?newversion"></script> 

NEWVERSION可以是任何字符串,因为它会被忽略。一个有用的选项是使用代码的日期或版本。

当我遇到同样的问题并希望确保所有客户端(不仅仅是我自己的浏览器!)都能运行新版本的代码时,我发现这种解决方法特别有用。

+0

谢谢!它终于认识到我的新变化。我想我会在这里坐一个小时试着自己修复它。我感谢帮助:) –

+0

不客气。感谢您接受答案:-) – airos

1

您是否在使用任何类型的编译工具(如吞咽或吞咽)?代码中可能存在错误,并且该工具不会编译更新后的代码。

否则,解决方案@airos建议应该工作。将任何唯一的查询字符串附加到JS的引用将始终在第一次重新加载时提供全新副本(因为浏览器将缓存新的URL)。

+0

不,我只使用devtools来检查我的代码有时会发生什么。我在前一次检查时看不到任何错误。 –

+0

您是否在devtools中进行更新?你有没有尝试@airos建议的解决方案? –

+0

是的,我用他的解决方案。此外,感谢您的帮助和回复此主题。 –

相关问题