如何停止服务人员返回过时的index.html?

时间:2018-12-12 17:02:08

标签: angular angular-service-worker

我在Angular服务人员返回旧版本的index.html(从安装服务人员的日期开始)时遇到了问题,这使我发疯了!

基本上是在重新启动浏览器(chrome)时,服务工作者正在使用旧的index.html,导致已加载已失效的mainxxx.js,并且由于IIS重写规则,我正在支持深度链接mainxxx.js返回index.html的内容(服务工作者的副作用首先返回错误的index.html)

当我软刷新或硬刷新浏览器选项卡时,会加载正确的index.html,一切都很好...也就是说,直到我关闭浏览器并重新启动,然后再重新提供旧的index.html。 :O

从下面的屏幕截图中可以看到(很抱歉,有关修订),我已经关闭了通过cache-control标头进行的缓存。.

enter image description here

让事情变得复杂...当我查看开发工具中的“应用程序”选项卡时,我可以看到针对该工作者的各种版本(我猜)的多个缓存实例,其中一个具有旧的index.html,另一个具有不同的一个已经缓存了较新的版本!

虽然我了解了有关服务人员的一般想法,但是我迷失了角度服务人员提供的所有代码,因此,如果有一种友善的人将我的身份指向可以帮助您的解决方案的方向,我将非常喜欢我:)

谢谢!

===== 根据要求,我的ngsw-config.json是标准的现成版本。

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

0 个答案:

没有答案