【问题标题】:HTTP Caching - Asset not serving from browser cache after setting Cache-Control HeaderHTTP 缓存 - 设置 Cache-Control 标头后资产未从浏览器缓存中提供服务
【发布时间】:2018-02-22 03:05:36
【问题描述】:

初始请求 第二次请求 我正在使用节点模块(express-cache-ctrl)在代理上启用缓存。

app.use(cache.public(3600));

我的静态资产上有一个带有 max-age 的 Cache-control 标头。我无法弄清楚为什么它们会在刷新时重新加载而不是从浏览器缓存中提供。

编辑:`

var onProxyRes = function(proxyRes, req, res) {
    if ( proxyRes.headers["content-type"] == "text/css" || 
    proxyRes.headers["content-type"] == "application/javascript") {
    proxyRes.headers["Cache-Control"] = "public, max-age=86400";
  }

//在这里添加一些东西来修改代理响应 };` 尝试在代理响应上手动添加缓存标头也不会缓存资产

【问题讨论】:

  • 您似乎正在使用 Chrome DevTool 的网络面板。默认情况下,选中“禁用缓存”之前的复选框。你取消选择了吗?
  • @shaochuancs 禁用缓存没有被选中
  • 这很奇怪。如果 DevTool 没有禁用缓存,根据您的截图没有任何问题。
  • @shaochuancs 顺便说一句,我在代理级别设置我的标题。我不认为这应该是一个问题,但我现在不确定
  • 或许你可以在原服务器设置Cache-Control标头再试一次?

标签: javascript node.js http browser-cache cache-control


【解决方案1】:

在 Chrome 论坛中找到此内容,在运行 https 服务器时,如果您有任何类型的 SSL 错误,那么在这种情况下,浏览器会阻止通过 HTTPS 进行缓存 https://bugs.chromium.org/p/chromium/issues/detail?id=110649。现在为我工作

【讨论】:

    猜你喜欢
    • 2016-08-14
    • 1970-01-01
    • 2015-01-16
    • 1970-01-01
    • 2015-05-18
    • 2019-12-03
    • 2017-11-17
    • 1970-01-01
    • 2021-10-18
    相关资源
    最近更新 更多