簡體   English   中英

Angular 6 PWA 節點不工作

[英]Angular 6 PWA with Node not working

我有一個 Angular 6 應用程序,它可以在使用http-server --port 8080命令時運行並注冊 SW,您可以在此處看到: 在此處輸入圖像描述

在此處輸入圖像描述

但是,當我從我的 Node / Express 應用程序提供文件時,它們應該被提供。 service worker 不會注冊,嘗試從 localhost 和 Heroku 運行應用程序,但都是一樣的。 應用程序以其他方式工作。 知道是什么原因造成的嗎?

在此處輸入圖像描述

我認為此問題與@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 })

我也有一個同樣的問題,在本地有效但在 herokou 無效,並且由於在 .net 上進行了各種搜索,我來到了這個頁面。

就我而言,我最終通過將--prod添加到 ng build 來解決它。 使用--prod ,將反映 environment.prod.ts 中的設置,angular.json 中生產中的“服務工作者”將為真,在app.module.ts中的ServiceWorkerModule.register中也為"enabled" -> true ,以及服務工人正在工作。 供參考。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM