使用 Django、Heroku 和 Name.com 的错误请求 (400)
Bad Request (400) using Django, Heroku, and Name.com
我刚刚用 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
大多数 answers/forums 我可以在这 3 个地方找到点来查找错误、ALLOWED_HOSTS、Heroku 自定义域和 DNS 记录。但我就是找不到错误。
我发现的一个建议是检查站点的其他区域。无论我走到哪里,我都会得到同样的错误,例如 example.com/about/
我是否需要在 name.com 进行其他设置?
只需使用命令行将 .example.com
添加到 ALLOWED_HOSTS
设置:
heroku config:set DJANGO_ALLOWED_HOSTS=.example.com,example.herokuapp.com
或使用 heroku 仪表板。
一行解决方案
#ALLOWED_HOSTS = ['localhost', '127.0.0.1','https://tm-sys-dashbobord.herokuapp.com/', config('SERVER', default='127.0.0.1')]
替换
ALLOWED_HOSTS =['*']
我刚刚用 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
大多数 answers/forums 我可以在这 3 个地方找到点来查找错误、ALLOWED_HOSTS、Heroku 自定义域和 DNS 记录。但我就是找不到错误。
我发现的一个建议是检查站点的其他区域。无论我走到哪里,我都会得到同样的错误,例如 example.com/about/
我是否需要在 name.com 进行其他设置?
只需使用命令行将 .example.com
添加到 ALLOWED_HOSTS
设置:
heroku config:set DJANGO_ALLOWED_HOSTS=.example.com,example.herokuapp.com
或使用 heroku 仪表板。
一行解决方案
#ALLOWED_HOSTS = ['localhost', '127.0.0.1','https://tm-sys-dashbobord.herokuapp.com/', config('SERVER', default='127.0.0.1')]
替换
ALLOWED_HOSTS =['*']