Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.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
在heroku上部署django应用程序时出现错误:不允许主机位于/Invalid HTTP#u主机头:';电子商务yy.herokuapp.com';_Django_Heroku - Fatal编程技术网

在heroku上部署django应用程序时出现错误:不允许主机位于/Invalid HTTP#u主机头:';电子商务yy.herokuapp.com';

在heroku上部署django应用程序时出现错误:不允许主机位于/Invalid HTTP#u主机头:';电子商务yy.herokuapp.com';,django,heroku,Django,Heroku,当我想在Heroku上部署我的Django应用程序时,我遇到了如下错误: 不允许主机位于/ 无效的HTTP_主机头:“ecommerceyy.herokuapp.com”。您可能需要在允许的主机中添加“ecommerceyy.herokuapp.com”。 但是,我在production.py中有如下代码: DEBUG = False ALLOWED_HOSTS = ['.herokuapp.com'] 我的wsgi.py如下所示: import os from django.core.

当我想在Heroku上部署我的Django应用程序时,我遇到了如下错误:

不允许主机位于/
无效的HTTP_主机头:“ecommerceyy.herokuapp.com”。您可能需要在允许的主机中添加“ecommerceyy.herokuapp.com”。

但是,我在production.py中有如下代码:

DEBUG = False

ALLOWED_HOSTS = ['.herokuapp.com']
我的wsgi.py如下所示:

import os 

from django.core.wsgi import get_wsgi_application

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "ecommerce.settings")

application = get_wsgi_application()
并加密ssl/tls https,如:

CORS_REPLACE_HTTPS_REFERER      = True
HOST_SCHEME                     = "https://"
SECURE_PROXY_SSL_HEADER         = ('HTTP_X_FORWARDED_PROTO', 'https')
SECURE_SSL_REDIRECT             = True
SESSION_COOKIE_SECURE           = True
CSRF_COOKIE_SECURE              = True
SECURE_HSTS_INCLUDE_SUBDOMAINS  = True
SECURE_HSTS_SECONDS             = 1000000
SECURE_FRAME_DENY               = True

我将setting.py修改到设置文件夹中

基本目录类似于os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(\uu文件)))

在设置文件夹的init.py中,代码类似于

from .base import *
from .production import *

try:
    from .local import *
except:
    pass

那么我的应用程序出了什么问题呢?

我从.base和.local提交,只有push.production到heroku,它是有效的。

heroku添加了django_heroku包,该包可以处理这个问题以及其他一些不错的功能

您可以做什么:

  • 打开
    settings.py
  • 顶部添加:
    导入django_heroku
  • 添加:
    django\u heroku.settings(locals())

然后用所有
requirements.txt
procfiles
runtime.txt

推送代码,您告诉Django在哪里使用
生产设置模块?您的代码只包含对
ecommerce.settings
的引用。我将我的setting.py修改到设置文件夹中,基本目录类似于os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(file)))。在设置文件夹的init.py中,代码类似于from.base import*from.production import*try:from.local import*除了:pass您是否在
settings.local
中覆盖它?您能否确认您的生产设置已正确加载,并且
ALLOWED_HOSTS
实际具有该值?您是否尝试过此操作:
ALLOWED_HOSTS=['*.herokuapp.com']
正是我想要的。