ngsw.json?ngsw-cache-bust 在 Angular 8 PWA 应用程序的离线模式下失败

use*_*042 5 angular-pwa service-worker-config

我遇到了与服务人员的问题。Service Worker 不会通过 app.module 自行注册。所以我在 main.ts 中手动注册它。它在在线模式下运行良好。但是当我将网络更改为离线模式时,出现 ngsw.json?ngsw-cache-bustfailing。任何解决方案都会有帮助。

主要.ts

    platformBrowserDynamic().bootstrapModule(AppModule).then(() => {
    if ('serviceWorker' in navigator && environment.production) {
      navigator.serviceWorker.register('/ngsw-worker.js');
    }
  }).catch(err => console.log(err));
Run Code Online (Sandbox Code Playgroud)

ngsw-catch-bust-失败

ngsw-config.json

 {
  "$schema": "./node_modules/@angular/service-worker/config/schema.json",
  "index": "/index.html",
  "assetGroups": [
    {
      "name": "app",
      "installMode": "prefetch",
      "resources": {
        "files": [
          "/favicon.ico",
          "/index.html",
          "/manifest.webmanifest",
          "/*.css",
          "/*.js"
        ]
      }
    }, {
      "name": "assets",
      "installMode": "lazy",
      "updateMode": "prefetch",
      "resources": {
        "files": [
          "/assets/**",
          "/*.(eot|svg|cur|jpg|png|webp|gif|otf|ttf|woff|woff2|ani)"
        ]
      }
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

Devtool-screen-shot Devtool-screenshot-2

Fra*_*sco 0

我认为你的问题出在其他地方。你能展示一下ngsw-config.json文件吗?

在 DevTools 中,Service Worker 是否正确注册并处于活动状态?

离线时究竟是什么无法按预期工作?是否只是 ngsw.json 文件在尝试离线获取它时返回异常?

更新

您如何在网络清单中设置scope和属性?start_url使用新的 Angular CLI,这些值默认设置为"./"(注意点),而在以前的版本中,点缺失,并且在某些设置中导致路径问题。

即使可能不是您的情况,因为您可以将应用程序添加到主屏幕,这意味着一切都已正确设置。