部署Django应用至Vercel成功后访问出现404: NOT_FOUND错误求助
Django部署Vercel后出现404: NOT_FOUND的排查方案
常见原因及解决方法
Vercel配置文件缺失或错误
Vercel依赖vercel.json指定入口和路由规则,项目根目录必须包含该文件,示例配置如下:{ "builds": [ { "src": "your_project_name/wsgi.py", "use": "@vercel/python", "config": { "maxLambdaSize": "15mb", "runtime": "python3.9" } } ], "routes": [ { "src": "/(.*)", "dest": "your_project_name/wsgi.py" } ] }注意将
your_project_name替换为实际的Django项目名称。静态文件未正确收集
生产环境下Django需要将静态文件统一收集到指定目录:- 在
settings.py中配置:STATIC_ROOT = os.path.join(BASE_DIR, 'static') STATIC_URL = '/static/' - 确保构建过程执行了
python manage.py collectstatic --noinput,可将该命令加入Vercel的构建脚本(比如package.json的scripts字段)。
- 在
项目根目录识别错误
检查Vercel部署设置中的Root Directory,确认其指向包含manage.py的目录,否则Vercel无法正确识别Django项目结构。WSGI路径配置错误
核对vercel.json中src字段的路径,必须精准指向WSGI文件。例如项目结构为my_django/my_django/wsgi.py,则路径应为my_django/wsgi.py。关键环境变量未配置
在Vercel项目设置中配置SECRET_KEY、DEBUG(生产环境需设为False)等必要环境变量,缺失这些变量会导致应用初始化失败,进而返回404。
额外排查步骤
- 查看Vercel构建日志,检查是否存在构建错误(如依赖安装失败、
collectstatic执行异常),这类问题会导致应用未正确部署。 - 本地模拟生产环境测试:设置
DEBUG=False后运行python manage.py runserver,验证应用是否能正常访问,排除代码路由本身的问题。
内容的提问来源于stack exchange,提问作者shaRif
相关产品推荐
相关产品推荐

