注册ServiceWorker时如何解决404错误?

时间:2019-09-11 03:40:19

标签: javascript service-worker

我正在为我的网站设置服务工作者,但未注册。我收到典型的“获取脚本时收到错误的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);
            });
        });
    }

1 个答案:

答案 0 :(得分:0)

另一种可能的解决方案是通过https://your.host/sw.js使文件sw.js可以访问,并进行更改:

navigator.serviceWorker.register('sw.js').then(function(registration) {

navigator.serviceWorker.register('/service-worker.js')

由于服务工作者将位于根目录中,因此该服务工作者将控制您域中所有网页的请求。