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

如何解决Vercel上Django Rest API部署后的404错误

Django Rest API在Vercel部署后404问题解决方案

1. 修正vercel.json配置

你修改后的配置丢失了核心的构建规则和路由映射,这是导致404的主要原因。请恢复并调整为以下配置:

{
    "version": 2,
    "builds": [
        {
            "src": "devntechno/wsgi.py",
            "use": "@vercel/python",
            "config": { "maxLambdaSize": "15mb", "runtime": "python3.9" }
        },
        {
            "src": "build_files.sh",
            "use": "@vercel/static-build",
            "config": {
                "distDir": "staticfiles_build"
            }
        }
    ],
    "routes": [
        {
            "src": "/static/(.*)",
            "dest": "/static/$1"
        },
        {
            "src": "/(.*)",
            "dest": "devntechno/wsgi.py"
        }
    ]
}
  • 保留builds配置:Vercel需要通过它识别Python服务入口和静态文件构建脚本
  • 路由规则确保所有非静态文件请求都转发到WSGI入口,静态文件直接映射到构建后的目录

2. 确保build_files.sh脚本正确

该脚本用于收集Django静态文件,必须包含以下内容(如果没有这个文件,新建一个并添加):

#!/bin/bash
pip install -r requirements.txt
python manage.py collectstatic --noinput
  • 本地给脚本添加执行权限:运行chmod +x build_files.sh后再推送代码到Vercel

3. 检查Django核心配置

  • 确认BASE_DIR定义正确:
    BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
    
  • 修正STATICFILES_DIRS的语法(确保格式合法):
    STATICFILES_DIRS = (
        os.path.join(BASE_DIR, 'static'),
    )
    
  • 生产环境必须关闭DEBUG:
    DEBUG = False
    
  • 检查urls.py:确保根路径或API路由已正确配置,比如添加path('', include('your_api_app.urls')),避免因无匹配路由导致404

4. 部署环境检查

  • 在Vercel项目的环境变量中添加SECRET_KEY:Django生产环境必须设置该变量,否则服务无法正常启动
  • 确认requirements.txt包含所有依赖(如django、djangorestframework等),避免构建时依赖缺失

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 15:27:16