我正在使用 create-react-app用 express服务器。
create-react-app
有一个预配置的 ServiceWorker,可以缓存本地 Assets ( https://github.com/facebook/create-react-app/blob/master/packages/react-scripts/template/README.md#making-a-progressive-web-app )。
当我尝试在我的服务器上发布时遇到的问题是 service-worker.js
文件可用,但是当我尝试注册它时,我的浏览器控制台出现错误。
在 Firefox 上,我遇到了这个错误:
Error during service worker registration:
TypeError: ServiceWorker script at
https://example.com/service-worker.js
for scopehttps://example.com/
encountered an error during installation.
在 Chrome 上,我收到更具描述性的错误:
Error during service worker registration: DOMException: Failed to register a ServiceWorker: The script has an unsupported MIME type ('text/html').
果然,如果我查看我的开发人员工具的网络选项卡并搜索 service-worker.js
文件,我可以看到它在 HTTP header 中有错误的 MIME 类型。
不过,我不明白为什么它有错误的 MIME 类型?
最佳答案
应用此更改:
'/service-worker.js' // ❌
'./service-worker.js' // ✅
解决了我的问题。
(在 navigator.serviceWorker.register('/service-worker.js')
)
<支持>
或者您可能需要:
'%PUBLIC_URL%/serviceworker.js'
谢谢@DanielLord对于 his comment .
关于javascript - Service Worker 注册错误 : Unsupported MIME type ('text/html' ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49566059/