如何解决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
相关产品推荐
相关产品推荐

