未捕获承诺类型错误:无法在 Chrome 中使用 next-pwa 获取 Nextjs PWA

问题描述

嗨,我正在开发 Nextjs 项目,我尝试使用 next-pwa 将其转换为 PWA,首先我创建了 next.config.js

const withPWA = require('next-pwa');

module.exports = withPWA({
    pwa: {
        dest: 'public',}
});

然后创建 manifest.json

{
  "name": "PRONTO APP","short_name": "PRONTO","icons": [
    {
      "src": "/icon.png","sizes": "128x128","type": "image/png"
    },{
      "src": "/icon-512x512.png","sizes": "512x512","type": "image/png"
    }
  ],"theme_color": "#FFFFFF","background_color": "#FFFFFF","start_url": "/","display": "standalone","orientation": "portrait"
}

然后我在页面中的 de _document 文件添加元数据

import Document,{ Html,Head,Main,NextScript } from "next/document";

class MyDocument extends Document {
    render() {
        return (
            <Html>
                <Head>
                    <link rel="manifest" href="/manifest.json" />
                    <link rel="apple-touch-icon" href="/icon.png" />
                    <Meta name='theme-color' content="#fff" />
                </Head>
                <body>
                    <Main />
                    <NextScript />
                </body>
            </Html>
        );
    };
}

export default MyDocument;

但是当我跑步时:

npm build dev 
npm start 

在 Google Chrome 中,我的 PWA 工作正常,但在控制台中出现此错误: 在其他浏览器中不会出现此错误

Uncaught (in promise) TypeError: Failed to fetch

我真的不知道为什么,使用 npm run dev 在 dev mod 中运行应用程序,我在 chrome 中收到以下消息:

workBox Router is responding to: /
workBox Network request for '/' threw an error. TypeError: Failed to fetch
workBox Using NetworkOnly to respond to '/'
Uncaught (in promise) TypeError: Failed to fetch

这是我的公共文件夹结构:

/public
-/fonts
-/images
-favicon.ico
-icon-512x512.png}
-icon.png
-manifest.json
-sw.js

我试图在这个视频中做同样的事情。 https://www.youtube.com/watch?v=8enp-acPbRE

有人可以帮我吗

解决方法

我在使用 Chrome 89 和 Workbox 6.1.1 时遇到了同样的错误。
将 Chrome 更新为 90(并将 Workbox 更新为 6.1.5)后,此错误消失了。

查看相关主题:https://github.com/GoogleChrome/workbox/issues/2749

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...