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

Vercel部署Django项目遇404及静态文件失效问题求助

解决Vercel部署Django后静态文件加载失败的方案

1. 核对Django静态文件核心配置

在settings.py中确认以下配置无误:

  • 强制设置DEBUG = False(Vercel生产环境下调试模式会导致静态文件处理逻辑异常)
  • 保留STATIC_URL = '/static/'
  • 配置静态文件收集目录:STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')(如果是Django 3.1+,也可以用BASE_DIR / 'staticfiles')
  • 确保INSTALLED_APPS中包含'django.contrib.staticfiles'
  • 若项目静态文件存放在自定义目录(如根目录下的static/),添加目录映射:
    STATICFILES_DIRS = [
        BASE_DIR / "static",
    ]
    

2. 正确配置Whitenoise中间件

已安装Whitenoise的前提下,重点调整中间件顺序和存储配置:

  • 在settings.py的MIDDLEWARE列表中,将WhiteNoiseMiddleware放在SecurityMiddleware之后、CommonMiddleware之前:
    MIDDLEWARE = [
        'django.middleware.security.SecurityMiddleware',
        'whitenoise.middleware.WhiteNoiseMiddleware',
        'django.contrib.sessions.middleware.SessionMiddleware',
        'django.middleware.common.CommonMiddleware',
        # 其余中间件按原有顺序保留
    ]
    
  • 在settings.py末尾添加静态文件存储规则:
    STATICFILES_STORAGE = 'whitenoise.storage.CompressedManifestStaticFilesStorage'
    

3. 调整Vercel路由与构建配置(vercel.json)

确保Vercel能正确识别静态文件和Django服务路由,配置示例如下:

{
  "builds": [
    {
      "src": "你的Django项目目录/wsgi.py",
      "use": "@vercel/python",
      "config": { "maxLambdaSize": "15mb", "runtime": "python3.10" }
    },
    {
      "src": "staticfiles/**",
      "use": "@vercel/static"
    }
  ],
  "routes": [
    {
      "src": "/static/(.*)",
      "dest": "/staticfiles/$1"
    },
    {
      "src": "/(.*)",
      "dest": "你的Django项目目录/wsgi.py"
    }
  ]
}

注意:将你的Django项目目录替换为实际存放wsgi.py的文件夹名称(比如仓库中的railgunglm)

4. 完善构建脚本(build.sh)

确保构建过程中执行静态文件收集操作,脚本内容如下:

#!/bin/bash
pip install -r requirements.txt
python manage.py collectstatic --noinput

同时确认requirements.txt中已包含whitenoise及所有项目依赖包。

5. 排查构建日志与静态文件访问

  • 部署后查看Vercel构建日志,确认collectstatic命令是否成功执行、是否有静态文件被收集到staticfiles目录
  • 尝试直接访问静态文件URL(如https://你的Vercel域名/static/css/main.css),若返回404,检查STATIC_ROOT路径与vercel.json路由规则是否匹配

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 01:15:01