Django项目DEBUG=False时触发500错误排查求助
Django DEBUG=False时500错误排查方案
常见排查点
- ALLOWED_HOSTS配置缺失:DEBUG=False时Django强制要求配置允许访问的域名/IP,若
ALLOWED_HOSTS为空列表或未包含当前访问的域名/服务器IP,直接触发500错误。检查settings.py中该字段,示例配置:ALLOWED_HOSTS = ['your-domain.com', '123.45.67.89', 'localhost']。 - 静态文件未正确部署:DEBUG=True时Django自动托管静态文件,False时需手动配置
STATIC_ROOT并执行python manage.py collectstatic收集静态文件到指定目录,同时需通过Nginx/Apache等Web服务器映射静态文件路径。若未完成这一步,静态文件加载失败可能引发500。 - 生产环境依赖不全:开发环境安装的依赖可能未完全同步到生产环境,执行
pip install -r requirements.txt重新安装所有依赖包。 - 日志未配置导致无法定位错误:默认情况下DEBUG=False时Django不会输出详细错误信息,可临时添加日志配置获取错误堆栈:
注意提前创建日志目录并赋予Django进程读写权限。LOGGING = { 'version': 1, 'disable_existing_loggers': False, 'handlers': { 'file': { 'level': 'ERROR', 'class': 'logging.FileHandler', 'filename': '/var/log/django/error.log', }, }, 'loggers': { 'django': { 'handlers': ['file'], 'level': 'ERROR', 'propagate': True, }, }, } - 数据库连接配置错误:DEBUG=True时使用的开发数据库配置,在生产环境可能因用户名、密码、主机地址变更导致连接失败,检查
DATABASES字段配置是否匹配生产环境数据库信息。 - 模板文件权限不足:生产环境中运行Django的用户(如www-data)无模板目录/文件的读取权限,需调整文件权限确保进程可访问模板。
快速验证步骤
- 优先确认
ALLOWED_HOSTS配置是否正确,这是DEBUG切换后最常见的触发点。 - 执行
python manage.py check --deploy,该命令会扫描生产环境下的配置风险并给出修复提示。 - 查看配置后的错误日志,通过堆栈信息直接定位具体异常。
内容的提问来源于stack exchange,提问作者Circuit
相关产品推荐
相关产品推荐

