javascript - Service Worker 注册错误 : Unsupported MIME type ('text/html' )

标签 javascript reactjs express service-worker create-react-app

我正在使用 create-react-appexpress服务器。

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 scope https://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/

相关文章:

javascript - 同时提交和关闭模态

javascript - FromDate 和 ToDate 的验证不适用于 jquery 中动态创建的日期选择器控件

javascript - 如何使用 JavaScript 以编程方式打开文件选择器?

javascript - 如何限制浏览器缓存中来自 firestore 的离线数据

node.js - 如何利用 Heroku 的 'postdeploy' 脚本在配置的 Heroku PostgreSQL 数据库中创建表?

node.js - Express res.sendfile 抛出禁止错误

javascript - jQuery 事件不适用于 id

reactjs - antd 切换勾选属性

javascript - 如何在 ReactJs 中组合样式属性

javascript - 变量在方法之外不起作用