【问题标题】:Bad Request (400) using Django, Heroku, and Name.com使用 Django、Heroku 和 Name.com 的错误请求 (400)
【发布时间】:2016-07-30 23:06:38
【问题描述】:

我刚刚使用 Heroku 部署了我的 Django 站点,它在 example.herokuapp.com 上运行良好。

我遇到的问题是当我访问 example.com 时,我收到错误请求 (400)。我查看了有关 400 个错误的 Django 文档,但我似乎无法找出问题所在。

我正在使用 Django 1.9.5 并使用 cookiecutter-django 启动该项目。 Name.com 是我的域名注册商。

我的设置的production.py:

ALLOWED_HOSTS = env.list('DJANGO_ALLOWED_HOSTS', default=['example.com'])

我不是 100% 确定我的 ALLOWED_HOSTS 的 DJANGO_ALLOWED_HOSTS 部分是如何工作的,但是当我转到 Heroku 仪表板并查看设置中的配置变量时,我发现 DJANGO_ALLOWED_HOSTS 是 .herokuapp.com

Heroku 自定义域:

Domain Name            DNS Target
*.example.com          example.herokuapp.com
example.com            example.herokuapp.com
www.example.com        example.herokuapp.com

Name.com DNS 记录:

Type   Host             Answer                 TTL  Prio
CNAME  www.example.com  example.herokuapp.com  300  N/A
CNAME  example.com      example.herokuapp.com  300  N/A
CNAME  *.example.com    example.herokuapp.com  300  N/A

在控制台中输入我得到的主机命令:

$ host www.example.com
www.example.com is an alias for example.herokuapp.com

$ host example.com
example is an alias for example.herokuapp.com

我可以在这 3 个地方找到大多数答案/论坛来查找错误、ALLOWED_HOSTS、Heroku 自定义域和 DNS 记录。但我就是无法发现错误。

我发现的一个建议是检查网站的其他区域。无论我去哪里,我都会遇到同样的错误,例如 example.com/about/

我需要在 name.com 上进行其他设置吗?

【问题讨论】:

标签: python django heroku dns cookiecutter


【解决方案1】:

单线解决方案

#ALLOWED_HOSTS = ['localhost', '127.0.0.1','https://tm-sys-dashbobord.herokuapp.com/', config('SERVER', default='127.0.0.1')]

替换

ALLOWED_HOSTS =['*'] 

【讨论】:

    【解决方案2】:

    只需使用命令行将.example.com 添加到ALLOWED_HOSTS 设置:

    heroku config:set DJANGO_ALLOWED_HOSTS=.example.com,example.herokuapp.com
    

    或使用 heroku 仪表板。

    【讨论】:

    • 成功了。起初你的建议没有用,因为我在它们之间加了一个空格,然后我注意到你没有空格,它起作用了!只是注意这一点,以防其他人犯我犯的同样错误。
    猜你喜欢
    • 2018-08-24
    • 2014-10-11
    • 2018-12-31
    • 1970-01-01
    • 1970-01-01
    • 2022-06-28
    • 2015-06-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多