为什么 Service Worker 在 Chrome 中无法运行?
2020-03-27
10528
我是 Web 开发新手,如果我的问题不清楚,请见谅。
我正在尝试制作 PWA,目前正在测试我的清单和服务工作线程是否正常工作。在我的项目中,我有一个 index.html 文件,它调用文件 app.js,我尝试在其中注册名为 serviceworker.js 的服务工作线程。这是我尝试注册服务工作线程的代码段:
if('serviceWorker' in navigator) {
navigator.serviceWorker.register('/serviceworker.js')
.then(function() {
console.log('service worker registered');
});
}
else {
console.log('cannot register');
}
当我重新加载页面时,我的控制台显示“无法注册”。为了解决这个问题,我在 if 子句中写了一行,看看这是否是条件本身的问题。结果,即使删除 if 和 else 子句并简单地运行
navigator.serviceWorker.register('/serviceworker.js')
.then(function() {
console.log('service worker registered');
});
代码段,控制台也会显示错误,提示“找不到属性注册”。据我所知,服务工作者并非在所有浏览器上都有效,但我检查了它是否在 Chrome 中运行(我正在测试它),它说服务工作者受支持。有人能告诉我为什么它不起作用吗?我目前使用的是 Chrome 版本 80.0.3987.149(官方版本)(64 位)。Alsi,我不知道这是否重要,但我正在使用 Node.js。提前致谢。