嗨,我正在研究 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
任何人都可以帮助我吗