Vuejs2 我无法使用VUE注册我的服务人员

Vuejs2 我无法使用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

我正在尝试用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 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'