首页 > 解决方案 > Angular Service Worker 未正确缓存 dataGroups URL

问题描述

我托管了来自域 abc.example.com、xyz.example.com 的多个站点,但每个子域都使用相同的 url 进行 API 访问。在这种情况下 api.example.com

我已经使用@angular/pwa 配置了一个服务工作者,它似乎在浏览器中正确注册,我正在尝试配置“dataGroups”,但 url 和 cacheConfigs 的组合对我不起作用。例如

当从https://api.example.com/Product/ProductSearch?p=abc123https://api.example.com/Product/ProductAdditionalInformation?p=abc123收到 API 响应时,这些变体都不会缓存响应

"dataGroups": [
{
  "name": "V1",
  "urls": [
    "https://api.example.com/Product/ProductSearch",
    "https://api.example.com/Product/ProductAdditionalInformation"
  ],
  "cacheConfig": {
    "maxSize": 50,
    "maxAge": "30m"
  }
},
{
  "name": "V2",
  "urls": [
    "**/Product/ProductSearch?",
    "**/Product/ProductAdditionalInformation?"
  ],
  "cacheConfig": {
    "maxSize": 50,
    "maxAge": "30m"
  }
},
{
  "name": "V3",
  "urls": ["**/Product/**"],
  "cacheConfig": {
    "maxSize": 50,
    "maxAge": "30m"
  }
},
{
  "name": "V4",
  "urls": ["/Product"],
  "cacheConfig": {
    "maxSize": 50,
    "maxAge": "30m"
  }
}

]

我已经在完全支持 https 的暂存环境中测试了这些变体

还有什么我想念的吗?

标签: angularprogressive-web-appsservice-workerangular-service-worker

解决方案


你能做一个stackblitz吗?

旁注:在 cacheConfig 对象中添加“策略”


推荐阅读