使用 glob 模式匹配从长期缓存中排除 sw.js

Exclude sw.js from the long term caching with glob pattern matching

为了启用长期缓存,根据 Firebase documentation,我在 headers 配置中有这个:

"headers": [
  {
    "source": "**/*.@(jpg|jpeg|gif|png|js|css)",
    "headers": [
      {
        "key": "Cache-Control",
        "value": "max-age=172800"
      }
    ]
  }
]

但我还为该应用程序提供 sw.js(服务工作者),我根本不想对其进行缓存。首先想到的是将其从 glob 匹配中排除,我需要帮助。否则,如果您认为有更好的方法,请告诉。谢谢

修改了模式并添加了新模式,为 sw.js

指定 no-cache
"headers": [
  {
    "source": "**/!(sw).@(jpg|jpeg|gif|png|js|css)",
    "headers": [{ "key": "Cache-Control", "value": "max-age=31536000" }]
  },
  {
    "source": "**/sw.js",
    "headers": [{ "key": "Cache-Control", "value": "no-cache" }]
  }
]