14

我刚刚用 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 上进行其他设置吗?

4

2 回答 2

20

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

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

或使用 heroku 仪表板。

于 2016-04-09T23:11:18.740 回答
0

一条线解决方案

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

取代

ALLOWED_HOSTS =['*'] 
于 2021-07-18T17:48:25.080 回答