Django设置Debug=False时HTML模板无法渲染返回500错误求助
Django Debug=False渲染模板500错误解决方案
- 第一步:先配置日志定位具体报错原因,Debug=False默认不会输出详细错误信息,将以下配置添加到
settings.py末尾,复现错误后查看生成的django_errors.log文件即可拿到具体报错点:
LOGGING = { 'version': 1, 'disable_existing_loggers': False, 'handlers': { 'file': { 'level': 'ERROR', 'class': 'logging.FileHandler', 'filename': 'django_errors.log', }, }, 'loggers': { 'django': { 'handlers': ['file'], 'level': 'ERROR', 'propagate': True, }, }, }
- 第二步:补全whitenoise配置,你已经添加了whitenoise中间件,还需要在静态配置部分添加存储配置,避免静态资源查找失败:
STATICFILES_STORAGE = 'whitenoise.storage.CompressedManifestStaticFilesStorage'
- 第三步:手动执行静态资源收集命令,Debug=False时Django不会自动扫描项目内的静态文件夹,需要执行命令将所有静态资源汇总到
STATIC_ROOT指定的staticfiles目录:
python manage.py collectstatic
执行时输入yes确认覆盖即可。
- 第四步:检查模板内容,确认没有使用仅Debug模式可用的语法,比如
{% debug %}模板标签,该标签在Debug=False时会直接抛出异常。 - 第五步:确认
ALLOWED_HOSTS配置正确,你当前配置中的{{ProjectName}}.herokuapp.com为占位符,需要替换为你实际部署在heroku的项目域名,本地测试如果使用非127.0.0.1的访问地址也需要补充到该列表中。
内容的提问来源于stack exchange,提问作者Saud Zubedi
相关产品推荐
相关产品推荐

