我正在创建一个渐进式Web应用程序(pwa),并尝试注册服务工作者以测试脱机功能。文件夹结构如下:
-- views
-- index.pug
-- sw.js
-- public
-- js
-- main.js
-- index.js
index.js文件是服务器文件,main.js是每个.pug文件中链接的文件。我嵌入了服务人员注册代码,代码如下
if ('serviceWorker' in navigator) {
window.addEventListener('load', function() {
navigator.serviceWorker.register('./sw.js').then(function(registration) {
// Registration was successful
console.log('Service Worker registration successful with scope: ', registration.scope);
// console.log('Service Worker registration successful with scope: ', registration.scope);
}, function(err) {
// registration failed :(
console.log('ServiceWorker registration failed: ', err);
});
});
}
404错误始终在本地主机中弹出,并且我不知道为什么会部署该URL,如何解决呢?
ServiceWorker registration failed: TypeError: Failed to register a ServiceWorker: A bad HTTP response code (404) was received when fetching the script.
谢谢
解决方案(更新)-
app.use('/', routes)将service-worker文件或其中的任何位置包括在index.js文件中。