Angular 6-未获取清单

Jak*_*jew 3 progressive-web-apps angular pwa

我正在尝试在我的应用中使用Service worker。

我已经添加了@angular/pwa,注册了服务人员:

if ('serviceWorker' in navigator) {
    navigator.serviceWorker.register('/ngsw-worker.js', {
        scope: '/'
    }).then((registration) => {
        console.log("Service worker OK!")
    });
}
Run Code Online (Sandbox Code Playgroud)

当我在本地运行Google Lighthouse时,一切正常,并且网站以在线模式运行,但是当我将应用程序上载到服务器时,我发现Lighthouse中的错误:

No manifest was fetched.
Run Code Online (Sandbox Code Playgroud)

我使用错误的路径吗?

manifest.json:
"start_url": "/index.html",
Run Code Online (Sandbox Code Playgroud)

abr*_*ham 5

该错误意味着您的index.html文件不会告诉浏览器有关清单的信息。添加:

<link rel="manifest" href="manifest.json">
Run Code Online (Sandbox Code Playgroud)


Kho*_*Phi 5

添加后@angular/pwa,请仔细检查以下内容:

1.在angular.json文件的资产下,添加manifest.json,如下所示

        "assets": [
          "src/favicon.ico",
          "src/assets",
          "src/manifest.json"
        ],
Run Code Online (Sandbox Code Playgroud)

2.您的manifest.json文件应该在src/目录中,所以src/manifest.json

3然后,在您的ngsw-config.json文件中,应具有以下内容:

  "files": [
    "/favicon.ico",
    "/index.html",
    "/manifest.json"
  ],
Run Code Online (Sandbox Code Playgroud)

完成上述三个步骤,您就可以开始了。