Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/341.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用Django、Heroku和Name.com的错误请求(400)_Python_Django_Heroku_Dns_Cookiecutter - Fatal编程技术网

Python 使用Django、Heroku和Name.com的错误请求(400)

Python 使用Django、Heroku和Name.com的错误请求(400),python,django,heroku,dns,cookiecutter,Python,Django,Heroku,Dns,Cookiecutter,我刚刚用Heroku部署了我的Django站点,它在example.herokuapp.com上运行良好 我遇到的问题是,当我访问example.com时,我收到了错误的请求(400)。我查看了Django文档中关于400个错误的内容,但似乎无法找出错误所在 我正在使用Django 1.9.5,并用cookiecutter Django启动了这个项目。Name.com是我的域名注册商 我的设置的production.py: ALLOWED_HOSTS = env.list('DJANGO_ALL

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

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

我正在使用Django 1.9.5,并用cookiecutter Django启动了这个项目。Name.com是我的域名注册商

我的设置的production.py:

ALLOWED_HOSTS = env.list('DJANGO_ALLOWED_HOSTS', default=['example.com'])
我不能100%确定DJANGO_ALLOWED_主机是如何工作的,但当我转到Heroku仪表板并查看设置中的配置变量时,我看到DJANGO_ALLOWED_主机是.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个地方,以查找错误、允许的_主机、Heroku自定义域和DNS记录。但我就是看不出错误

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


是否需要在name.com上设置其他内容?

只需使用命令行将
.example.com
添加到
允许的\u主机设置中即可:

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

或者使用heroku仪表板。

这就成功了。起初你的建议不起作用,因为我在它们之间加了一个空格,然后我注意到你没有空格,它起作用了!请注意这一点,以防其他人犯与我相同的错误。可能是重复的