部署Django项目到Vercel时出现500内部服务器错误求助
Django部署Vercel问题排查指南
已解决的第一个错误
最初的Runtime.ImportModuleError: No module named 'django'是因为依赖文件名错误(requirement.txt → requirements.txt),修改文件名是正确操作,后续新错误可按以下步骤排查:
1. 验证依赖文件完整性
确保requirements.txt包含Django及所有项目依赖,示例:
Django>=4.2 gunicorn>=21.2.0 # 补充项目所需的其他依赖,如psycopg2-binary、django-cors-headers等
注意依赖名称拼写准确,避免大小写或单词错误。
2. 检查Vercel配置文件vercel.json
确认配置指向正确的Django入口文件,示例配置:
{ "builds": [ { "src": "你的项目名/wsgi.py", "use": "@vercel/python", "config": { "maxLambdaSize": "15mb", "runtime": "python3.11" } } ], "routes": [ { "src": "/(.*)", "dest": "你的项目名/wsgi.py" } ] }
将你的项目名替换为实际包含wsgi.py、settings.py的文件夹名称,同时确保Python runtime版本与本地开发环境一致。
3. 修正Django项目配置(settings.py)
- 生产环境务必设置
DEBUG = False - 配置
ALLOWED_HOSTS,加入你的Vercel域名(如"xxx.vercel.app"),临时测试可设为["*"](不建议生产环境使用) - 静态文件配置:设置
STATIC_ROOT = BASE_DIR / "staticfiles",并在部署阶段执行collectstatic命令:
可在Vercel项目的Build Command中设置为python manage.py collectstatic --noinput,或在项目根目录创建package.json添加脚本:{ "scripts": { "build": "python manage.py collectstatic --noinput" } }
4. 配置环境变量
将本地.env文件中的关键变量(如SECRET_KEY、数据库连接URL等)添加到Vercel控制台的Settings → Environment Variables中,确保生产环境能读取到必要配置。
5. 查看完整部署日志
前往Vercel控制台的Deployments模块,找到对应部署的完整日志,定位具体错误信息(如数据库连接失败、静态文件缺失等),针对性解决。
内容的提问来源于stack exchange,提问作者Heidi Renata Halim
相关产品推荐
相关产品推荐

