首页 > 解决方案 > Angular 6 PWA 与 Node 不工作

问题描述

我有一个 Angular 6 应用程序,它可以在使用命令服务时工作并注册 SW, http-server --port 8080如您在此处看到的: 在此处输入图像描述

在此处输入图像描述

但是当我从我的 Node / Express 应用程序中提供文件时,它们应该被提供。服务人员不会注册,尝试从 localhost 和 Heroku 运行应用程序,但它是一样的。应用程序以其他方式工作。知道什么会导致这种情况吗?

在此处输入图像描述

标签: node.jsangularexpressangular-service-workerpwa

解决方案


我认为这个问题与@angular/cli注册服务工作者时使用的路径有关,我发现注册服务工作者main.ts更可靠:

platformBrowserDynamic().bootstrapModule(AppModule).then(() => {
  if ('serviceWorker' in navigator && environment.production) {
    navigator.serviceWorker.register('ngsw-worker.js');
  }
}).catch(err => console.log(err));

或者,查看此最近的评论,您可以手动修改路径app.modules.ts

-ServiceWorkerModule.register('./ngsw-worker.js', { enabled: environment.production })
+ServiceWorkerModule.register('.ngsw-worker.js', { enabled: environment.production })

推荐阅读