【发布时间】:2020-12-10 02:31:08
【问题描述】:
我有一个 PWA,我正在尝试使用 bubblewrap 工具 (https://github.com/GoogleChromeLabs/bubblewrap) 创建一个具有受信任 Web 活动的 Android 应用 (apk)。为了检查 PWA 标准,它使用了未通过以下审计步骤的 Lighthouse(红色):
start_url does not respond with a 200 when offline
Timed out waiting for start_url to respond.
但实际上关于当前页面离线的步骤是可以的(绿色):
Current page responds with a 200 when offline
我的 PWA 托管在一个 url:https://example.com/myapp/。因此服务工作者(清单)在“/myapp/”处具有启动 url 和范围。因此,如果我以离线模式访问此页面(选中开发工具“应用程序”选项卡中的“离线”框),它将提供一个离线页面,该页面在安装服务工作者时在开始时缓存(我遵循此示例:@987654323 @ 并且一切似乎都运行良好,我什至在我的手机上以飞行模式进行了测试)。
此外,启动页面重定向到 ?locale=en 但它是同一个网页(因此在离线模式下,每个 url 似乎都显示我的离线 html 页面)。更奇怪的是,在大约 20-30 份审计报告中,有一次通过了这一步,是随机的)
我正在 Mac、Chrome 84 上进行 Lighthouse 测试。
编辑: 所以我做了一些测试,我看到如果我访问http://example.com/myapp(而不是http://example.com/myapp/ - 最后有一个/),离线html页面不再显示。但是在清单中,范围和 start_url 被设置为“/myapp/”,所以我不知道这是否是一个问题(如果我将它们设置为“/myapp”,PWA 将不再工作,说没有该路径上的服务人员,这听起来很奇怪,因为我的码头服务器将 /myapp 重定向到 /myapp/ 两者应该是相同的资源)
【问题讨论】:
标签: progressive-web-apps offline lighthouse bubblewrap