我有一个Angular 6应用程序,该应用程序可以工作并在与
您可以在此处看到http-server --port 8080
命令:
但是,当我从Node / Express应用程序提供文件时,它们是应提供的。服务人员不会注册,尝试从localhost和Heroku运行该应用程序,但这是相同的。应用程序否则起作用。知道是什么原因造成的吗?
答案 0 :(得分:2)
我认为这个问题与@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));
或者,看着this recent comment,您可以手动修改app.modules.ts
中的路径
-ServiceWorkerModule.register('./ngsw-worker.js', { enabled: environment.production })
+ServiceWorkerModule.register('.ngsw-worker.js', { enabled: environment.production })