【发布时间】:2018-02-25 12:45:35
【问题描述】:
我最近正在研究渐进式 Web 应用程序。我已经像这样链接了 manifest.json 和 sw.js:
在 index.html 中
<link rel="manifest" href="<%= htmlWebpackPlugin.files.publicPath %>static/manifest.json">
在我的 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')
})
}
看起来它可以工作,但是当我尝试使用 DevTools 将 webapp 添加到我的主屏幕时,它显示以下错误: “无法安装站点:未检测到匹配的服务工作人员。您可能需要重新加载页面,或检查当前页面的服务工作人员是否也控制清单中的启动 URL”
在做了一些研究后,我发现有人说将 sw.js 和 manifest.json 放在项目的根目录中。但是当我这样做时,它不会链接文件(当我将它们放在静态文件夹中时,它会链接它们)。顺便说一句,我使用的是标准的 Vue.js 模板。
有什么建议可以解决这个问题吗?
【问题讨论】:
-
没有人使用 Vue 模板来构建 PWA,因为它是一项新技术吗?
-
Vue 有 PWA 模板:github.com/vuejs-templates/pwa
-
新的 vue cli 还内置了 PWA 支持 github.com/vuejs/vue-cli
标签: web web-applications vue.js progressive