【问题标题】:Chrome Refuses to Clear Javascript Cache (Even After Hard Reload and Manual Cache Clear)Chrome 拒绝清除 Javascript 缓存(即使在硬重新加载和手动清除缓存之后)
【发布时间】:2018-01-17 17:30:21
【问题描述】:

正如标题所说,谷歌浏览器拒绝加载更新版本的 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 或任何其他 Web 开发工具。
  • 我看到了同样的事情,即使从应用程序选项卡中清除,除了标准浏览器缓存之外,没有来自服务工作者或任何其他缓存的缓存 API。它确实在私人窗口中显示为更新,并最终在 30 分钟左右后自行清除。
  • 如果我直接查看文件,它没有显示为更新,我需要附加一个像 ?sdfsdf 这样的缓存破坏器参数,然后我会看到更新的文件。
  • 你能试试这个 echo "";在文件顶部;

标签: google-chrome caching browser-cache


【解决方案1】:

您是否尝试过彻底清除缓存?

C:\Users\yourusername\AppData\Local\Google\Chrome\User Data\Default\Cache

【讨论】:

    【解决方案2】:

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

    Cache-Control: must-revalidate
    

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

    【讨论】:

      【解决方案3】:

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

      除此之外 Ctrl+F5 不起作用。

      【讨论】:

        猜你喜欢
        • 2015-09-01
        • 2015-01-21
        • 2018-12-05
        • 2013-07-19
        • 1970-01-01
        • 2018-09-11
        • 1970-01-01
        • 2022-01-24
        • 2013-06-01
        相关资源
        最近更新 更多