angular - 如何启用 Angular PWA 服务工作者?
问题描述
在 Angular 项目中,使用命令行运行以下命令:
ng add @angular/pwa
ng build --prod
/dist 文件夹中的输出作为静态网站发布。
https://azureadb2ctesting1.z9.web.core.windows.net/
通过PWABuilder运行 URL 时,会检测到清单,但不会检测到 service worker。此外,将 Chrome devtools 中的网络更改为 时offline
,页面无法正常加载,而是显示“没有 Internet 连接”。
还要注意控制台中的以下错误:
main.cb0300ed077227f6fc7f.js:1 Service Worker 注册失败:DOMException: 无法使用脚本 (' https :// azureadb2ctesting1.z9.web.core.windows.net/ngsw-worker.js '):脚本具有不受支持的 MIME 类型('text/plain')。
如何为这个 Angular PWA 启用 service worker?
解决方案
在 angular.json 你应该有:"serviceWorker": true
在您的应用程序根模块中,您应该在 import 中有以下行:
ServiceWorkerModule.register('/ngsw-worker.js', { enabled: environment.production })
推荐阅读
- sql - 提高 postgresql 中自连接的效率
- r - 如何在 R 中绘制条形图,每个组件对应于其他组件?
- azure - 无法拉取映像 myapidemodocker.azurecr.io/apidemo:v4.0:rpc 错误:代码 = 未知 desc = 未知 blob
- java - 从 Eclipse 导入到 Android Studio:找不到捆绑消息。AndroidJpsBundle,语言环境 pl_PL
- r - 计算朴素贝叶斯分类器的准确度、精确度和召回率(手动计算)
- javascript - 我们如何键入一个类工厂来生成一个给定对象字面量的类?
- xaml - 如何在 uwp 中默认 navigationviwe 显示模式?
- java - 为数字对象实现 Parcelable 时出现 ClassCastException
- angular - Angular 5:我们如何使用 routeroutlet 将数据从嵌套组件传递到父组件?
- bash - 终端 - 关闭所有终端窗口/进程