【问题标题】:Why does my Angular PWA fails on Lighthouse PWA audit while everything work fine when i manually test it?为什么我的 Angular PWA 在 Lighthouse PWA 审核中失败,而当我手动测试它时一切正常?
【发布时间】:2020-01-10 14:15:11
【问题描述】:

如果你转到应用程序https://quotesaboutjesus.netlify.com/quotes 并查看 Chrome 开发工具中的应用程序选项卡,几秒钟后你会看到 service worker 运行良好......并且应用程序在在线模式下运行良好。

但灯塔审计结果总是说我:

  • 当前页面在离线时没有响应 200
  • start_url 在离线时没有响应 200。start_url 确实响应了,但不是通过 service worker。
  • 不注册控制 page 和 start_url 的 service worker

但是正如您在我的code here 或直接在my manifest.webmanifest here 中看到的那样,我做到了(我想?:因为 Lighthouse 说我没有):

  1. 添加网络应用清单。
  2. 检查清单中的 start_url 是否正确。
  3. 向您的应用添加服务人员。
  4. 使用 service worker 在本地缓存文件。
  5. 离线时,使用service worker作为网络代理返回 文件的本地缓存版本。

所以我不明白为什么我没有通过审计测试(你可以自己轻松地重现它online)。

我想这可能是因为我的 SW 注册有点晚,所以我尝试优化应用程序的性能,但即使现在它的性能得分也更好(至少在审计测试期间是 90),它是没有通过这个测试。

有人可以帮我吗?

Image showing the Lighthouse error messages

Image showing the service worker working well

Image Showing the (start_ul in) manifest

【问题讨论】:

  • 也许尝试将您的 start_url 更改为 /quotes
  • 嗨 @Mathias 引号是 / 重定向到的位置,而不是基本 URL。但我会试一试。
  • 重定向可能会导致您的问题(不确定)。通常,人们将所有东西都放在基地
  • 事实上这是一个角度重定向,而不是服务器的重定向。我尝试按照您的建议更改为 /quotes,但它不能解决问题。
  • 您确定上传了新清单吗?我刚查了一下,还是这个 "start_url": "/",

标签: angular progressive-web-apps lighthouse angular-pwa


【解决方案1】:

我也遇到了这个问题,然后我在以下位置找到了这个解决方案: https://stackoverflow.com/a/61152966/8581106

您应该将registrationStrategy: "registerImmediately" 添加到 app.module 中的 serviceWorker 注册中:

ServiceWorkerModule.register("ngsw-worker.js", {
            enabled: environment.enableProdMode,
            registrationStrategy: "registerImmediately"
}),

如中所述

【讨论】:

    猜你喜欢
    • 2020-12-10
    • 2020-06-21
    • 2021-08-01
    • 2021-09-20
    • 1970-01-01
    • 2021-05-17
    • 2011-04-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多