【问题标题】:Chrome's cache not working, when refreshing刷新时Chrome的缓存不起作用
【发布时间】:2016-05-15 02:15:44
【问题描述】:

在 Web 应用程序的本地开发中,我有几千个 JS 文件。

为了在每次刷新时不等待 15 秒,我将缓存标头添加到响应中

Cache-Control: max-age=3600, public

在页面上,如果文件发生更改,我会将缓存中断器添加到更改的 URL。

<script src="file1.js?sha1=abc..."></script>
<script src="file2.js?sha1=def..."></script>
<script src="file3.js?sha1=123..."></script>
...

在 Chrome 或 Firefox 中不起作用。无论我如何刷新我的页面(“硬”、“软”),浏览器总是会为这数千个文件中的每一个文件发出请求。

有没有办法让 Chrome 和 Firefox 在刷新页面时不忽略链接资源的缓存?

【问题讨论】:

    标签: google-chrome http firefox caching


    【解决方案1】:

    浏览器通常会执行“304 未修改?”检查文件,或者至少检查那些正常工作的文件。您确定他们正在请求和下载每个文件吗?还是只是做这样的检查?

    如果有数千个文件,我肯定会考虑合并和缩小它们,因为这意味着您的网站每次加载都会很慢。

    【讨论】:

    • 是的,他们做了 304 Not Modified...数千次。我不会在开发中缩小,因为这会使它们更难阅读并且需要时间。
    • 304 Not Modified 不会下载整个文件,除非它实际更改(因此出现“未修改?”问题)并将使用浏览器的缓存副本。因此,即使您的文件没有更新,请仔细检查您的缓存断路器是否一直在更改,因为如果您确实每次都看到文件下载,那么问题很可能出在缓存断路器上。否则 304 是默认行为。
    猜你喜欢
    • 2011-05-05
    • 2022-08-18
    • 2014-04-26
    • 2012-06-30
    • 1970-01-01
    • 1970-01-01
    • 2013-04-23
    • 1970-01-01
    • 2014-04-10
    相关资源
    最近更新 更多