我最近正在深入研究渐进式Web应用程序.我已经将我的manifest.json和sw.js链接起来了:
在index.html中
<link rel="manifest" href="<%= htmlWebpackPlugin.files.publicPath %>static/manifest.json">
Run Code Online (Sandbox Code Playgroud)
在我的main.js
if('serviceWorker' in navigator) {
const messaging = firebase.messaging()
navigator.serviceWorker.register('/static/sw.js').then((registration) => {
messaging.useServiceWorker(registration)
console.log('Service Worker registered')
}).catch((error) => {
console.log('Service Worker failed to register')
})
}
Run Code Online (Sandbox Code Playgroud)
看起来它有效,但当我尝试使用DevTools将webapp添加到我的主屏幕时,它显示以下错误:"无法安装站点:未检测到匹配的服务工作者.您可能需要重新加载页面,或检查当前页面的服务工作者还控制清单中的起始URL"
在做了一些研究后,我发现有人说将sw.js和manifest.json放在项目的根目录中.但是当我这样做时,它不会链接文件(当我把它们放在静态文件夹中时,它会链接它们).顺便说一下,我正在使用标准的Vue.js模板.
有任何建议如何解决这个问题?