You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何解决Mock Service Worker脚本存在不支持的MIME类型('text/html')的问题?

如何解决Mock Service Worker脚本存在不支持的MIME类型('text/html')的问题?

我来帮你排查这个问题!你遇到的这个MIME类型错误,本质是服务器没有正确识别mockServiceWorker.js这个脚本文件,反而把它当成HTML页面返回了,所以才会显示不支持的'text/html'类型。咱们一步步来解决:

  • 确认脚本文件的位置是否正确
    你已经执行了npx msw init public,先检查项目的public文件夹里是否确实存在mockServiceWorker.js文件。如果你的项目静态资源目录不是默认的public(比如有的项目用public/static),那需要调整init命令的目标路径,比如执行npx msw init public/static,确保脚本最终能通过http://localhost:3000/mockServiceWorker.js(或者对应你的静态资源路径)访问到。

  • 验证脚本能否正常访问
    打开浏览器直接访问http://localhost:3000/mockServiceWorker.js,看看页面显示的是JS代码还是404页面/项目的HTML内容。如果显示的是HTML,说明服务器没找到这个脚本文件,返回了HTML页面,这就是MIME类型错误的根源。

  • 检查开发服务器的静态资源配置
    如果你用的是Create React App,默认public目录就是静态资源目录,一般没问题;但如果是自定义webpack或者其他构建工具,要确保静态资源目录配置正确。比如webpack的devServer配置里,要明确指定静态资源目录:

    module.exports = {
      devServer: {
        static: './public',
      },
    };
    
  • 清除缓存并重启服务
    浏览器缓存或者开发服务器缓存可能会干扰脚本的加载,先尝试用Ctrl+Shift+R强制刷新浏览器清除缓存,然后彻底关闭开发服务器,重新启动后再测试。

  • 排查客户端路由的拦截问题
    如果你的项目用了客户端路由(比如React Router),要确保路由规则不会把/mockServiceWorker.js当成路由路径处理。比如如果有通配符路由(*),要保证这个脚本的请求不会被路由捕获,而是直接落到静态资源上。

按照上面的步骤逐一排查,最常见的问题就是文件位置不对或者服务器没正确映射静态资源,只要确认脚本能被正常访问,这个问题大概率就能解决!

备注:内容来源于stack exchange,提问作者user19625670

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.16 11:20:32