2

在尝试注册我的服务人员时,我m trying to figure out how I can combine my react app with workbox as my serviceworker. No matter what I总是遇到同样的错误。

Uncaught (in promise) DOMException: Failed to register a ServiceWorker: 该脚本具有不受支持的 MIME 类型 ('text/html')。

在我做了一些研究之后,大多数解决方案都证明它是由开发环境引起的。这是真的?如果是这样,我如何在开发环境中注册服务工作者,尤其是工作箱。

我的 index.js 中的代码片段

if( 'serviceWorker' in navigator ) {
   console.log("Supported!")
   navigator.serviceWorker
                   .register( 'sw.js' , { scope : ' ' } )
                   .then( function( ) {
                       console.log('Congratulations!!Service Worker Registered');
                   })
                   .catch( function() {
                       console.log(`Aagh! Some kind of Error :- `);
                   });
} else {
console.log("Not supported")
}

我的 sw.js 只包含一个简单的 console.log

4

1 回答 1

2

需要检查的几件事,1) create-react-app 现在创建了一个开箱即用的 PWA 应用程序(带有 SW 和 manifest.json 文件)。确保您与由此创建的文件不冲突。我建议使用开箱即用的东西,除非你有明确的理由使用 Workbox,它应该适用于任何框架/无框架,尝试原生的东西。

2) 确保您在支持 HTTPS(带有证书)和 service worker 的服务器上运行您的应用程序。

于 2018-05-24T18:58:57.340 回答