在heroku上部署django app有错误:DisallowedHost at / Invalid HTTP_HOST header:'ecommerceyy.herokuapp.com'

时间:2018-03-17 00:30:43

标签: django heroku

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

DisallowedHost at / Invalid HTTP_HOST header: 'ecommerceyy.herokuapp.com'. You may need to add 'ecommerceyy.herokuapp.com' to ALLOWED_HOSTS.

但是,我在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修改为设置文件夹

enter image description here

BASE_DIR与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 *
except:
    pass

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

3 个答案:

答案 0 :(得分:1)

我承诺从.base&来自.local,只有将.production推送到heroku,它才有效。

答案 1 :(得分:0)

Heroku添加了django_heroku软件包,该软件包可处理此问题以及其他一些不错的功能。

https://devcenter.heroku.com/articles/django-app-configuration

答案 2 :(得分:-1)

您可以做什么:

  • 打开settings.py
  • 在顶部添加:import django_heroku
  • 添加:django_heroku.settings(locals())

然后使用所有requirements.txtprocfilesruntime.txt的推送代码。