Angular 5应用程序不会注册服务工作者

时间:2018-02-01 16:43:55

标签: angular angular-cli service-worker

我已经建立了一个应用程序,SW工作正常。我继续发展而没有注意SW ...... 现在,在为应用程序收费时,没有更多的SW下载(就像应用程序没有注册SW一样)。

由于我不知道如何调试/发现该问题的线索,我非常沮丧。 如何跟踪SW注册过程?

更多背景信息:

  • 我有:
    • "serviceWorker": true位于.angular-cli.json
    • 我的app.module.ts 中的
    • ServiceWorkerModule.register('/ngsw-worker.js', { enabled: environment.production })
    • 在prod mod中构建我的应用程序,并使用http-server(ngsw.json和ngsw-worker.js都可访问)服务
    • 以开发模式清理缓存(常规缓存和应用程序/清除存储)
  • 我试图:
    • 更改app.module导入顺序(我首先尝试ServiceWorkerModule.register('/ngsw-worker.js', { enabled: environment.production }),然后在BrowserModule之后尝试第二次)
    • 验证environment.productiontrue(它是)
    • 从头开始生成另一个空的应用程序执行相同的过程(在这种情况下,SW工作......)

我可以查看其他内容吗?我忘记了什么吗?

如果不是我最后的两个解决方案:

  • 在空应用程序中按模块移动模块以解决问题而不理解错误
  • 点火+萨满歌......

2 个答案:

答案 0 :(得分:4)

问题似乎是由angularFire2引起的。我有同样的问题,但能够通过将以下代码放在我的main.ts文件中来修复它。

if ('serviceWorker' in navigator && environment.production) {
  navigator.serviceWorker.register('/ngsw-worker.js');
}

答案 1 :(得分:0)

a还必须将我的基本网址设为index.html,否则服务工作者无法按设计工作:

的index.html:

<base href="index.html">