我有一个可以在开发和生产中运行的 React 应用程序,但是在生产中我在控制台中收到以下错误:
The script has an unsupported MIME type ('text/html').
Failed to load resource: net::ERR_INSECURE_RESPONSE
registerServiceWorker.js:80 Error during service worker registration:
DOMException: Failed to register a ServiceWorker: The script has an unsupported MIME type ('text/html').
该错误不会发生在开发中,只会发生在生产环境中。该应用程序在生产中仍然可以正常工作,但我仍然希望解决错误。
经过一番挖掘,似乎在生产中 service-worker.js
文件是从原始 index.html
文件请求的,而 MIME 类型为 text/html
,因此 service-worker.js
文件没有正确的 MIME 类型,而该类型需要为 application/javascript
。
不幸的是,尽管我认为我了解问题所在,但我无法解决它。
生产版本是使用create-react-app
创建的,并由Django
后端提供。包含 React
应用程序的 index.html
页面的服务如下:
re_path('.*', TemplateView.as_view(template_name='index.html'))
Nginx 上是否有某些东西需要更改?我猜不会,因为我还有其他生产站点在 MIME 类型方面正常工作(但是它们都不是需要服务 worker 的 React
应用程序)。
最佳答案
如果您注册了一些 Service Worker,就会发生这种情况。如果您打开 Chrome 开发者工具,您可能会收到一些错误。 前往
Chrome Dev Tools -> Application -> Service Worker
如果您看到某个 Service Worker 已注册,那么您必须通过单击它来取消注册它,然后刷新页面并检查。
关于django - 与服务 worker react 生产错误 : invalid MIME type,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50990825/