PWA - 子目录中的 service-worker JS

3

我尝试将我的sw.js文件放在子目录而不是根目录中。但是我收到了一个错误,说无法安装service-worker。

是否真的需要将此文件放在根目录中,还是我漏掉了什么东西?

JS代码:

if ('serviceWorker' in navigator) {

    navigator.serviceWorker.register('/js/pwa/sw.js', { scope: '/js/pwa' }).then(function(reg) {
        console.log('Successfully registered. Scope is ' + reg.scope);
    }).catch(function(error) {
        console.log('Registering failed ' + error);
    });
} else {
    console.log('Service worker can not be registered on this device');
}
1个回答

7
如果我做同样的事情,我会得到以下错误。
Registering failed SecurityError: Failed to register a ServiceWorker: The path of the provided scope ('/js/pwa') is not under the max scope allowed ('/js/pwa/'). Adjust the scope, move the Service Worker script, or use the Service-Worker-Allowed HTTP header to allow the scope.

以下几个部分看起来有点奇怪。
{ scope: '/js/pwa' }

请按以下步骤操作:
{ scope: '/js/pwa/' }

1
谢谢,看起来这就是罪魁祸首。现在感觉有点傻...但这会过去的 ;) - Swissdude
谢谢您的回复!✨很高兴解决了它! - sachiko-kame

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接