Vuejs2 我无法使用VUE注册我的服务人员
我正在尝试用VUE创建一个PWA 尝试注册service worker时,我在main.js文件中按以下方式注册: main.jsVuejs2 我无法使用VUE注册我的服务人员,vuejs2,service-worker,Vuejs2,Service Worker,我正在尝试用VUE创建一个PWA 尝试注册service worker时,我在main.js文件中按以下方式注册: main.js import Vue from 'vue' import App from './App.vue' import router from './router' Vue.config.productionTip = false new Vue({ router, render: h => h(App) }).$mount('#app') const
import Vue from 'vue'
import App from './App.vue'
import router from './router'
Vue.config.productionTip = false
new Vue({
router,
render: h => h(App)
}).$mount('#app')
const prod = process.env.NODE_ENV === 'production';
const swLocation = '../public/sw-config.js';
if (
prod &&
('https:' === location.protocol || location.host.match(/(localhost|127.0.0.1)/)) &&
navigator.serviceWorker
) {
navigator.serviceWorker.register(swLocation).catch( error => console.log)
console.log('sw register');
}
如您所见,我的服务工作者文件名为sw-config.js,它位于与index.html相同级别的公用文件夹中
但是在执行npm run build时,我通过控制台得到消息:“sw register”
但也存在以下错误:
获取脚本时收到错误的HTTP响应代码(404)。
未能加载资源:net::ERR\u无效\u响应
我还注意到,第一次执行应用程序时,控制台中不会显示此错误,但如果重新加载,则会在启动时显示
我试图通过清理所有注册的服务人员来修复它,以验证这是否是错误,但它不起作用,这是我在Chrome控制台中使用的代码:
navigator.serviceWorker.getRegistrations().then(function(registrations) { for(let registration of registrations) { registration.unregister() } })
在Chrome开发者工具上,我有以下几点:
Chrome=>开发工具=>应用程序=>服务人员=>重新加载时更新(选中)
我不知道如何避免控制台中的错误,有人能帮我吗
谢谢
生成后,
public
文件夹中的所有内容都位于应用程序的根文件夹中
所以你的url应该是:constswlocation='/sw config.js'代码>