【发布时间】:2020-05-30 17:35:13
【问题描述】:
我有一个网站 (Angular 9.0.1),我添加了 @angular/pwa 包以将其转换为 PWA,但它无法正常工作。
该网站在生产站点上,但测试数据现在在 https://new.indomablestore.com
我已检查所需文件(manifest.webmanifest、ngsw.json、ngsw-worker.js)是否位于根文件夹中。
我检查了 index.html 文件是否正确指向清单,它显示在 Chrome Devtools Application 选项卡上。
但是在Installability 部分它说:没有检测到匹配的服务工作者。您可能需要重新加载页面,或者检查当前页面的服务工作者是否也控制清单中的起始 URL。
我还检查了app.module.ts 文件有这一行:
ServiceWorkerModule.register('ngsw-worker.js', { enabled: environment.production })
而且我没有修改任何 PWA 文件,我让 Angular CLI 构建它们。
任何帮助将不胜感激,因为该网站即将上线,这是我列表中的最后一件事 :)
谢谢!
更新:清单如下所示:
"name": "Indomable",
"short_name": "Indomable",
"theme_color": "#1976d2",
"background_color": "#fafafa",
"display": "standalone",
"scope": "/",
"start_url": "/",
"icons": [
...
]
}
Service Worker 是这样在 app.module 上注册的:
@NgModule({
declarations: [
AppComponent,
...PAGES,
...COMPONENTS,
...PIPES
],
imports: [
BrowserModule,
HttpClientModule,
FormsModule,
routing,
NgxPayPalModule,
ServiceWorkerModule.register('./ngsw-worker.js', { enabled: environment.production, scope: './' })
],
...
无论如何感谢您的快速回答:)
【问题讨论】:
-
chrome lighthouse 工具也指向了 cghislai 下文提到的内容。 start_url。 Lighthouse 通常会为您提供有关需要修复的问题的良好提示。
-
Lighthouse 报告给了我两个错误:“start_url 确实响应了,但不是通过服务人员。”和“不注册控制页面和start_url的服务工作者”,但它提供的链接是关于服务工作者的,而不是具体的错误。
标签: angular google-chrome-devtools progressive-web-apps angular-pwa