我的应用程序基于子域,我正在尝试在我的应用程序中使用服务工作者。
如何在abc.localhost.com上运行service worker。我了解谷歌在localhost上没有列入白名单的子域名来使用服务工作者但是有解决方法吗?
我无法让服务工作者在开发模式下工作。
app文件夹中包含应用程序内容。
如果我在app文件夹中注册service-worker,我无法缓存bower组件,然后app无法脱机工作。
如果我在app文件夹之外注册服务工作者,那么位于app文件夹中的index.html永远无法在根目录中找到app文件夹之外的servie-worker.js的路径。
我在index.html中试过这个:
if( 'serviceWorker' in navigator ) {
navigator.serviceWorker
.register( '../service-worker.js' , { scope : ' ' } )
.then( function( ) {
console.log('Congratulations!!Service Worker Registered');
})
.catch( function( err) {
console.log(`Aagh! Some kind of Error :- ${err}`);
});
} else {
console.log("SW NOT SUPPORTED");
//still not supported
}
但我只得到404。
我也试过使用绝对路径,即
.register( '/service-worker.js' , { scope : ' ' } )
答案 0 :(得分:0)
由于服务工作者仅适用于localhost
和https/ssl
网址
本地计算机上的服务工作者+子域名的流程是为我的开发环境创建https
网址,我使用https://myapp.local而https://subdomain.myapp.local指向127.0.0.1:
/etc/hosts
文件(myapp.local,subdomain.myapp.local)https
)