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

React+Vite对接Django后端出现MIME类型错误求助

问题解决步骤

1. 修正URL路由顺序

Django的URL匹配遵循从上到下的优先级,你当前把通配符路由re_path(r'^.*$', ...)放在最前面,导致所有请求(包括JS、SVG文件)都被返回index.html,这就是MIME类型错误的核心原因。必须把通配符路由移到最后:

from django.urls import path, include, re_path
from django.views.generic import TemplateView
from django.conf import settings
from django.conf.urls.static import static

urlpatterns = [
    path('auth/', include('djoser.urls.jwt')),
    path('vite.svg', TemplateView.as_view(template_name='vite.svg')),
    # 通配符路由必须放在最后,确保前面的具体路由优先匹配
    re_path(r'^.*$', TemplateView.as_view(template_name='index.html')),
] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)

2. 配置Django模板目录

确保Django能找到dist目录下的index.html,修改settings.py中的TEMPLATES配置:

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR, 'dist')],  # 将dist目录加入模板搜索路径
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]

3. 调整Vite构建路径

Vite默认构建后的资源路径是根目录下的/assets/,但Django的静态资源前缀是/static/,两者不匹配会导致资源加载失败。修改vite.config.js:

import { defineConfig } from 'vite'
import react from '@vitejs/plugin-react'

export default defineConfig({
  plugins: [react()],
  base: '/static/'  // 设置静态资源基础路径与Django的STATIC_URL一致
})

重新构建前端项目:

npm run build

将新生成的dist文件夹复制到Django项目根目录。

4. 验证静态资源访问

启动Django服务后,尝试访问http://localhost:8000/static/assets/index-d5Zm7UFq.js,如果能正常返回JS文件,说明静态资源配置正确。

5. 生产环境额外操作

如果是生产环境部署,需要运行以下命令将所有静态资源收集到STATIC_ROOT指定的目录:

python manage.py collectstatic

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 03:43:43