当我想在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修改为设置文件夹
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
我的应用程序出了什么问题?
答案 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.txt
,procfiles
和runtime.txt
的推送代码。