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

部署Django应用至Heroku遇DisallowedHost错误,已配置规则仍报错

解决Django部署Heroku时的DisallowedHost错误

嘿,我之前部署Django到Heroku时也踩过这个一模一样的坑!咱们一步步来排查和解决:

最可能的原因:Heroku没加载你的production配置文件

你在production.py里配置了ALLOWED_HOSTS和DEBUG,但你的wsgi.py默认指向的是ecommerce.settings——如果你的项目是分环境配置(比如settings/base.py、settings/production.py),那Heroku现在可能还在加载默认的settings.py,根本没用到你写的production.py!

解决方法:设置Heroku环境变量指定配置文件

在本地终端运行这条命令,告诉Heroku加载你的production配置:

heroku config:set DJANGO_SETTINGS_MODULE=ecommerce.settings.production

(注意路径要对应你的项目结构,如果production.py直接在根目录的settings文件夹下,这个路径就没问题)

其他排查方向

如果上面的方法没用,再检查这几点:

  • 确认ALLOWED_HOSTS的写法
    虽然.herokuapp.com理论上能匹配所有子域名,但有时候Heroku的请求头会有特殊情况,试试把具体域名也加上:

    ALLOWED_HOSTS = ['ecommerceyy.herokuapp.com', '.herokuapp.com']
    
  • 检查production.py的配置是否生效
    确保production.py里正确覆盖了基础配置,比如开头要有:

    from .base import *  # 假设你有base.py作为基础配置
    DEBUG = False
    ALLOWED_HOSTS = ['.herokuapp.com']
    

    而且要确认你已经把修改后的代码push到Heroku了:

    git add .
    git commit -m "update production settings"
    git push heroku main
    
  • 验证DEBUG确实是False
    如果DEBUG=True,Django会忽略ALLOWED_HOSTS的配置(本地开发时的特性),所以一定要确保production.py里的DEBUG是False,并且被正确加载。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 10:18:04