【问题标题】:WebApp: Failures: Service worker does not successfully serve the manifest's start_urlWebApp:失败:服务工作者没有成功地为清单的 start_url 提供服务
【发布时间】:2018-04-07 22:36:14
【问题描述】:

在使用 Lighthouse 测试网络应用程序后,我遇到了这样的错误:

不会提示用户安装 Web App 浏览器可以 主动提示用户将您的应用添加到他们的主屏幕,这 可以带来更高的参与度。了解更多。

失败:服务人员 未成功提供清单的 start_url。

满足here 描述的所有条件:

  1. 网站通过 HTTPS 提供服务。
  2. 服务工作者已注册。
  3. Service Worker 的范围包括您审核的页面和 Web 应用清单的 start_url 属性中指定的页面。
  4. 存在 Web 应用清单并满足以下条件:具有 有效的名称属性。具有有效的 short_name 属性。具有有效的 start_url 属性。具有有效的显示属性,值为 独立、全屏或最小用户界面。指定一个图标位于 至少 192 像素 x 192 像素。

清单文件通过脚本呈现。重要的变量是

scope_url = 'https://website.com/app/'
start_url = 'https://website.com/app/about/'

ServiceWoker.js 非常简单:

self.addEventListener('push', function(e) {

  ...
});

self.addEventListener('notificationclick', function (e) {
    ...
);

Web App 和 sw.js 从 start_url 提供。

我还能检查什么?

编辑 1. 当我尝试从 Chrome 控制台“添加到主屏幕”时,我得到:

Site cannot be installed: the page does not work offlinecomment 相近的是什么@

【问题讨论】:

  • 我们仍然需要一个好的答案。一直在敲打我的头,试图弄清楚为什么会发生这种情况。亚历克斯,自从你发帖后你学到了什么吗?
  • @karns 实际上不是,在更改 start_url 并添加 fetch 后,一切都按预期工作。
  • Alex,所以有两件事:1)您确实使用绝对 URL 作为 start_url?想知道是否使用相对 URL 是我的问题 - 不这么认为。 2) 如果您删除了您的应用程序依赖项之一,错误会再次出现吗? IE。删除 Angular 应用程序的 Angular Core。试图缩小这个问题!谢谢
  • 另外,如果错误再次出现,想知道您是否尝试使用相对路径..
  • @karns 我无法测试,因为我有一个工作配置。但是,我有一个有趣的观察——在使用 lighthouse 测试 pwa 应用程序后,我再次遇到了同样的错误。同时,在移动浏览器中,安装应用程序的提示按预期显示。

标签: google-chrome service-worker progressive-web-apps lighthouse


【解决方案1】:

将 start_url 更改为 'https://website.com/app/' 并添加:

self.addEventListener('fetch', function(e){

});

到 serviceWorker.js 问题已经解决了。

【讨论】:

    【解决方案2】:

    似乎最新版本的 chrome-devtools-lighthouse 可以验证您的 start_url 是否已成功提供(返回一些内容和响应代码 200),即使设备处于离线状态也是如此。

    【讨论】:

      猜你喜欢
      • 2018-06-17
      • 2012-07-07
      • 1970-01-01
      • 1970-01-01
      • 2018-01-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多