【发布时间】: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