You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Django中设置Debug=False与Allowed_hosts避免出现Http 500错误

Django设置Debug=False触发500错误解决方案

修复步骤:

  1. 修正WhiteNoise中间件顺序
    你当前配置中WhiteNoise中间件放在了中间件列表末尾,官方要求必须放在SecurityMiddleware之后、所有其他中间件之前,修改后的MIDDLEWARE配置如下:
MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    # WhiteNoise调整到该位置
    'whitenoise.middleware.WhiteNoiseMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
    # 删除原来放在末尾的WhiteNoise配置
]
  1. 补充STATIC_ROOT配置
    Debug关闭时Django必须指定静态文件收集的目标路径,在静态文件配置段新增一行:
STATIC_ROOT = BASE_DIR / "staticfiles"
  1. 本地测试前执行静态文件收集
    你使用了带哈希的压缩静态文件存储,本地测试Debug=False前必须先执行收集命令:
python manage.py collectstatic
  1. 确认SECRET_KEY可正常读取
    检查本地环境变量或.env文件中是否正确配置了SECRET_KEY,decouple的config方法如果读取不到配置会直接抛出异常,Debug关闭时不会显示具体错误只会返回500。
  2. (可选)开启错误日志定位问题
    如果按以上步骤修复后仍有问题,可在settings.py中添加日志配置输出具体错误原因:
LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'handlers': {
        'file': {
            'level': 'ERROR',
            'class': 'logging.FileHandler',
            'filename': BASE_DIR / 'debug.log',
        },
    },
    'loggers': {
        'django': {
            'handlers': ['file'],
            'level': 'ERROR',
            'propagate': True,
        },
    },
}

内容的提问来源于stack exchange,提问作者Eliska

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 19:36:04