Chrome拒绝清除Javascript缓存(即使进行硬性刷新和手动清除缓存)

14

正如标题所述,Google Chrome无法加载新版本的JavaScript文件。

我尝试过:

  • Ctrl + F5
  • 开发者控制台>网络选项卡>禁用缓存
  • 禁用缓存,然后在开发者控制台仍然打开的情况下单击右键刷新>清空缓存并强制重新加载
  • 禁用缓存,然后在开发者控制台仍然打开的情况下使用Ctrl + F5
  • Chrome设置>从时间开始手动删除所有缓存,然后Ctrl + F5

基本上这里列出的所有内容:Chrome WON'T clear cache... ctrl + F5 doesn't seem to work either

没有任何作用。源面板仍显示加载旧的JavaScript文件。令人难以置信的是,当我在源面板中右键单击文件,然后选择在新标签页中打开时,更新文件会在新标签页中打开,但刷新页面仍会在开发者控制台的源面板中显示旧文件。

唯一解决Chrome问题的方法是手动在文件名末尾添加“?”和一个随机数。这似乎迫使Chrome实际加载新文件。目前,我一直在使用PHP添加一个

<script type="text/javascript" src="file.js<?php echo '?' . rand(); ?>"></script>

为了让Chrome正确加载任何内容,但这似乎是一个可怕的解决方案。
我的问题是,我如何让Chrome从服务器重新加载Javascript文件而不是缓存?

你能展示给我们实际的文件HTTP请求吗?你可以使用Chrome DevTools的Copy All as HAR功能,Fiddler或任何其他网络开发工具。 - Leonid Vasilev
我也看到了同样的问题,即使在应用程序选项卡中清除缓存,也没有来自服务工作者或任何其他缓存的缓存 API,除了标准浏览器缓存。在私密窗口中它显示为已更新,并在大约30分钟后自动清除。 - Alex Borsody
如果我直接查看文件,则不会显示为已更新,我需要添加一个类似于?sdfsdf的缓存清除参数,然后才能看到更新后的文件。 - Alex Borsody
你能试试在文件顶部加上这个代码吗?echo "<script>localStorage.clear();</script>"; - Muhammad Numan
3个回答

2
您尝试过完全清除缓存吗?
C:\Users\yourusername\AppData\Local\Google\Chrome\User Data\Default\Cache

1
您可以通过在响应头中添加以下内容来解决服务器端的问题:
Cache-Control: must-revalidate

此外,如果您想使用Ctrl+F5,在打开开发人员控制台后执行此操作-它应该有效。请确保在开发人员控制台的网络选项卡中勾选“禁用缓存”。

-2

这真的很烦人。您可以通过在Chrome中打开检查窗口并选择网络和禁用缓存来强制重新加载。

除此之外,Ctrl+F5无法起作用。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接