You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Workbox离线无法获取缓存网络请求,疑与Vary头部相关

PWA运行时缓存离线失效问题

问题背景与现象

  • 技术栈:基于Workbox的VitePWA包,采用GenerateSW模式构建Service Worker,用于缓存Laravel后端API响应以支持离线使用。
  • 异常情况:功能上线初期测试正常,近6-8周未修改PWA相关代码的情况下出现离线失效。缓存存储中存在正确的API响应数据,但对比服务器响应,缓存响应的Vary头部多了Authorization字段(格式为Origin,Authorization, Accept-Encoding)。
  • 报错信息:Workbox控制台抛出以下错误:
Network request for '/system/api/v1/settings' threw an error. TypeError: Failed to fetch
    at StrategyHandler.fetch (workbox-96d32552.js:2840:33)
    at StrategyHandler.fetchAndCachePut (workbox-96d32552.js:2880:37)
    at NetworkFirst._getNetworkPromise (workbox-96d32552.js:3720:36)
    at NetworkFirst._handle (workbox-96d32552.js:3640:37)
    at NetworkFirst._getResponse (workbox-96d32552.js:3330:33)

当前运行时缓存配置

...
urlPattern: /^regexPattern$/,
  handler: 'NetworkFirst',
  options: {
    cacheName: 'api',
    expiration: {
      maxEntries: 500,
      maxAgeSeconds: 60 * 60 * 24 * 365 * 2
    },
    cacheableResponse: {
      statuses: [0, 200]
    }
  }
...

已尝试的无效方案

将Workbox的ignoreVary选项配置在expiration.matchOptions中,问题未得到解决。

求助内容

恳请提供排查方向或可行的解决方案。

内容的提问来源于stack exchange,提问作者Rhecil Codes

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 00:27:14