Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/433.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 无法更新作用域的ServiceWorker-HTTP错误400_Javascript_Vue.js_Service Worker - Fatal编程技术网

Javascript 无法更新作用域的ServiceWorker-HTTP错误400

Javascript 无法更新作用域的ServiceWorker-HTTP错误400,javascript,vue.js,service-worker,Javascript,Vue.js,Service Worker,我有一个Vue PWA应用程序,在我们的错误日志中,我看到一个特定用户有数百个这样的应用程序(我和另一个人都无法复制) 当我转到那个URL时,服务工作者JS文件就会很好地显示出来 在我的vue.config.js中,我有: pwa:{ workboxPluginMode:“InjectManifest”, workboxOptions:{ swSrc:'/src/sw.js', swDest:'service worker.js', }, }, 我的src/sw.js文件: /*eslint禁

我有一个Vue PWA应用程序,在我们的错误日志中,我看到一个特定用户有数百个这样的应用程序(我和另一个人都无法复制)

当我转到那个URL时,服务工作者JS文件就会很好地显示出来

在我的vue.config.js中,我有:

pwa:{
workboxPluginMode:“InjectManifest”,
workboxOptions:{
swSrc:'/src/sw.js',
swDest:'service worker.js',
},
},
我的
src/sw.js
文件:

/*eslint禁用*/
//这是GenerateSW模式无法为我们提供的代码段。
//此代码侦听用户对更新应用程序的确认。
self.addEventListener('message',e=>{
如果(!e.data){
返回;
}
开关(如数据){
案例“skipWaiting”:
自我skipWaiting();
打破
违约:
//努普
打破
}
});
workbox.core.clientsClaim();//Vue CLI 4和Workbox v4,其他
//Workbox提供的预制代码。
赛尔夫。赛尔夫。赛尔夫。赛尔夫。赛尔夫;
工作箱.预加工.预加工和切割(self.u preachemanifest,{});
src/registerServiceWorker.ts
文件:

从“注册服务工作者”导入{register};
if(process.env.NODE_env!=“开发”){
注册(${process.env.BASE\u URL}服务工作者.js`{
注册(注册){
//每分钟检查一次代码更新
设置间隔(()=>{
registration.update();
}, 1000 * 60);
},
更新(注册){
document.dispatchEvent(
新CustomEvent('swUpdated',{detail:registration})
);
},
});
}
是一种相当通用的状态代码,可以出于多种原因返回

您发布的所有信息都与客户端代码相关,但这无助于调试服务器端问题


最终,调查这一点的方法是确定为什么后端web服务器返回HTTP
400
作为传入
https://myapp.com/service-worker.js
它接收到的。这个问题的答案特定于您的web服务器设置,查看服务器日志可能会给您一个线索。

这些文件静态托管在AWS Amplify上(类似于Netlify),因此我无法访问日志。正如我提到的,如果我在浏览器中打开该文件,它会显示得很好。所以这里有一些服务人员的古怪行为,可能与服务器无关。
Failed to update a ServiceWorker for scope ('https://myapp.com/') with script ('https://myapp.com/service-worker.js'): A bad HTTP response code (400) was received when fetching the script.