Chrome 拒绝清除 Javascript 缓存(即使在硬重新加载和手动清除缓存之后)

mt_*_*ing 12 caching google-chrome browser-cache

正如标题所说,谷歌浏览器拒绝加载较新版本的 Javascript 文件。

我试过了:

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

基本上这里列出的所有内容:Chrome 不会清除缓存... ctrl + F5 似乎也不起作用

这些都没有奏效。源面板仍然显示正在加载旧的 Javascript 文件。绝对令人难以置信的是,当我右键单击源面板中的文件,然后选择在新选项卡中打开时,更新后的文件会在新选项卡中打开,但刷新页面后仍会在源面板中显示旧文件开发控制台。

让 Chrome 为我工作的唯一方法是手动附加 ? 以及文件名末尾的随机数。这似乎迫使 Chrome 实际加载新文件。截至目前,我一直在使用 PHP 添加一个

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

为了在 Chrome 中正确加载任何内容,但这似乎是一个糟糕的解决方案。

我的问题是,如何让 Chrome 从服务器而不是缓存实际重新加载 Javascript 文件?

Ish*_*ngh 1

您可以通过添加到响应标头来修复服务器端的问题:

Cache-Control: must-revalidate
Run Code Online (Sandbox Code Playgroud)

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