Angular服务工作者可以更新缓存密钥数据吗?

时间:2018-10-25 06:08:33

标签: angular express service-worker

我的应用程序由EJS模板引擎呈现的express.js和index.html服务

因此,当我第一次访问我的网站时,index.html会正确呈现。

但是,如果刷新页面,则从service worker加载index.html,因为

服务工作者的缓存是原始index.html文件

我想更新一些缓存数据(不是全部)或如何缓存呈现的html文件。

例如:

enter image description here

如果我想更新index.html缓存数据,该怎么办?

我真的需要别人的帮助。

列出一些角度sw配置:

ngsw-config.json

{
  "index": "/index.html",
  "assetGroups": [
    {
      "name": "app",
      "installMode": "lazy"(prefetch both have tried),
      "resources": {
        "files": [
          "/favicon.ico",
          "/index.html",
          "/*.css",
          "/*.js"
        ]
      }
    }, {
      "name": "assets",
      "installMode": "lazy",
      "updateMode": "prefetch",
      "resources": {
        "files": [
          "/assets/**"
        ]
      }
    }
  ]
}

我的Dist项目结构

/ dist

-index.html

-*。js

1 个答案:

答案 0 :(得分:0)

好的,我找到了解决此问题的临时解决方案:

将数据组配置添加到nsgw-config.json

  "dataGroups": [
    {
      "name": "api-performance",
      "urls": [
        "/api/**"(you can ignore this line),
        "/"
      ],
      "cacheConfig": {
        "strategy": "freshness",
        "maxSize": 100,
        "maxAge": "3d",
        "timeout":"2m"
      }
    }
  ]

我知道我们通常将其配置为缓存json api数据,但我认为它也可以缓存html /纯文本。

虽然有效,但是有人有更好的主意吗?