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

部署React/Vite应用到Vercel后页面空白,报MIME类型错误

解决Vite/React部署Vercel后空白页及MIME类型错误问题

核心问题分析

控制台报错Failed to load module script: Expected a JavaScript module script but the server responded with a MIME type of "text/html",原因是vercel.json的路由规则把所有请求(包括静态资源)都重定向到了index.html,导致浏览器请求assets/xxx.js时收到的是HTML文件,而非JS模块。

解决方案

1. 修正vercel.json路由配置

调整路由规则,优先匹配静态资源,再处理SPA的 fallback 路由:

{
  "builds": [
    {
      "src": "package.json",
      "use": "@vercel/static-build",
      "config": {
        "distDir": "build"
      }
    }
  ],
  "routes": [
    // 先匹配所有静态资源,直接返回对应文件
    {
      "src": "/assets/(.*)",
      "dest": "/assets/$1"
    },
    // 其他请求(SPA路由)才重定向到index.html
    {
      "src": "/(.*)",
      "dest": "/index.html"
    }
  ]
}

2. 调整vite.config.js的base配置

如果部署在Vercel的根域名(非子路径),将base设为'/'(默认值,也可省略):

export default defineConfig({
  base: '/',
  build: {
    outDir: 'build',
  },
  plugins: [react()],
});

3. 验证构建后的文件

执行npm run build后,确认build/index.html中的<script>标签src已被Vite自动替换为assets/xxx.js(带哈希的正确路径),无需手动修改原始的./src/index.jsx路径。

4. Vercel项目设置调整

在Vercel项目的Build & Development Settings中:

  • 框架预设选择Vite
  • 构建命令保持npm run build
  • 输出目录设为build

完成以上步骤后重新部署,页面即可正常加载。

内容的提问来源于stack exchange,提问作者Haidepzai

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 02:15:02