首页 > 解决方案 > 即使使用示例代码,PWABuilder 也会记录错误

问题描述

我正在尝试设置一个服务人员以允许我的 PWA 离线工作。我将 PWABuilder 与“带有备份脱机页面的脱机副本”策略一起使用。我已按照所有说明进行操作,对任一脚本的唯一更改是确保 service worker 脚本中的 URL 指向正确的脱机后备页面。

当我清除缓存和服务人员,然后在最新的稳定版 Chrome for Windows 上加载主页时,我看到几个控制台错误,并且该页面无法脱机工作(尽管它确实在角落显示了安装按钮)。

The service worker navigation preload request failed with network error: net::ERR_INTERNET_DISCONNECTED.
The FetchEvent for "https://example.com/starturl/" resulted in a network error response: the promise was rejected.
StaleWhileRevalidate.js:136 Uncaught (in promise) no-response: no-response :: [{"url":"https://example.com/starturl/","error":{}}]

我认为让起始 URL 与当前 URL 不同可能会导致问题,所以我尝试将其更改为/但我遇到了同样的问题。我尝试用谷歌搜索错误,但没有找到任何相关信息。

当我加载一个子页面(也是起始 URL)时,我得到了额外的错误。

A bad HTTP response code (404) was received when fetching the script.
Uncaught (in promise) TypeError: Failed to register a ServiceWorker for scope ('https://example.com/starturl/') with script ('https://example.com/starturl/pwabuilder-sw.js'): A bad HTTP response code (404) was received when fetching the script.

我可以从该错误中看到它正在尝试从而https://example.com/starturl/pwabuilder-sw.js不是https://example.com/pwabuilder-sw.js. 这对我来说毫无意义,因为说明指出该文件应该位于根目录上,而且我什至没有在我的代码中的任何地方包含该 URL。

通过 Lighthouse 运行我的页面告诉我,我的清单没有任何问题,并且任何一个页面上都没有任何 JavaScript 干扰服务人员。我完全不知所措,因为我按原样使用示例代码(除了更改服务工作者中的 URL)。

如果有人知道为什么会发生这种情况,我会很乐意提供帮助。

标签: cachingprogressive-web-appsbrowser-cachepwabuilder

解决方案


推荐阅读