我正在为我的网站设置服务工作者,但未注册。我收到典型的“获取脚本时收到错误的HTTP响应代码(404)”。页面加载时的响应。
我已经确保home.php和sw.js在同一目录中。该站点托管在HTTPS上,因此也不是问题。这些是任何人在线提供的唯一解决方案,因此,坦白地说,我现在很茫然。如果有任何不同,则此站点托管在Windows服务器上。
这是我的home.php中应该注册服务工作者的代码。
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);
}, function(err) {
// registration failed :(
console.log('ServiceWorker registration failed: ', err);
});
});
}
答案 0 :(得分:0)
另一种可能的解决方案是通过https://your.host/sw.js使文件sw.js可以访问,并进行更改:
navigator.serviceWorker.register('sw.js').then(function(registration) {
为
navigator.serviceWorker.register('/service-worker.js')
由于服务工作者将位于根目录中,因此该服务工作者将控制您域中所有网页的请求。