#django #heroku #django-rest-framework #django-deployment #heroku-ci
#django #heroku #django-rest-framework #django-deployment #heroku-ci
Вопрос:
Итак, я пытаюсь развернуть свой проект django в heroko, и я получил это.
Я знаю, в чем здесь проблема, поэтому я добавил URL the-yogify.herokuapp.com
ALLOWED_HOST
-адрес в settings.py файл моего проекта django.
ALLOWED_HOSTS = ['http://the-yogify.herokuapp.com/',
'https://the-yogify.herokuapp.com/',
'the-yogify.herokuapp.com',
'the-yogify.herokuapp.com/',
'127.0.0.1']
Но ошибка по-прежнему сохраняется.
Что я здесь делаю не так? Я думал, что фактическая ошибка может быть чем-то другим.
Итак, я распечатал журналы heroku, он также показывает ту же ошибку.
2020-11-24T04:10:53.978271 00:00 app[web.1]: [2020-11-24 04:10:53 0000] [4] [INFO] Starting gunicorn 20.0.4
2020-11-24T04:10:53.979367 00:00 app[web.1]: [2020-11-24 04:10:53 0000] [4] [INFO] Listening at: http://0.0.0.0:25352 (4)
2020-11-24T04:10:53.979552 00:00 app[web.1]: [2020-11-24 04:10:53 0000] [4] [INFO] Using worker: sync
2020-11-24T04:10:53.991703 00:00 app[web.1]: [2020-11-24 04:10:53 0000] [10] [INFO] Booting worker with pid: 10
2020-11-24T04:10:54.026534 00:00 app[web.1]: [2020-11-24 04:10:54 0000] [11] [INFO] Booting worker with pid: 11
2020-11-24T04:10:54.200285 00:00 heroku[web.1]: State changed from starting to up
2020-11-24T04:10:57.847722 00:00 app[web.1]: Invalid HTTP_HOST header: 'the-yogify.herokuapp.com'. You may need to add 'the-yogify.herokuapp.com' to ALLOWED_HOSTS.
2020-11-24T04:10:58.083555 00:00 app[web.1]: Bad Request: /
2020-11-24T04:10:58.092696 00:00 app[web.1]: 10.11.198.97 - - [24/Nov/2020:04:10:58 0000] "GET / HTTP/1.1" 400 59515 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36 Edg/86.0.622.51"
2020-11-24T04:10:58.099353 00:00 heroku[router]: at=info method=GET path="/" host=the-yogify.herokuapp.com request_id=dafb2e9e-fd1c-49d7-8375-fb0b707ef5bc fwd="42.111.13.118" dyno=web.1 connect=1ms service=2796ms status=400 bytes=59767 protocol=https
2020-11-24T04:10:59.830985 00:00 app[web.1]: Invalid HTTP_HOST header: 'the-yogify.herokuapp.com'. You may need to add 'the-yogify.herokuapp.com' to ALLOWED_HOSTS.
Спасибо за ваше время.
Ответ №1:
На самом деле, это была моя ошибка.
Я обнаружил, что в settings.py
моем проекте django есть 2 файла. Один был в корневом каталоге проекта, а другой внутри <project name>/
. И я вносил все изменения в корень setting.py
. Я до сих пор абсолютно не представляю, как и когда другой setting.py файл был создан. И, наконец, как было предложено в сообщениях об ошибках, я исправил проблему, и все в порядке.
Спасибо всем за их ответы.
Ответ №2:
Для устранения дополнительных проблем вы можете посмотреть, выполняется ли он с помощью локальной команды heroku:
heroku local
Мы ожидаем столкнуться с этой ошибкой DisallowedHost здесь. Теперь добавьте ‘0.0.0.0’ к вашим ALLOWED_HOSTS:
settings.py
ALLOWED_HOSTS = [
'0.0.0.0',
'the-yogify.herokuapp.com', # your herokuapp url
'127.0.0.1'
]
Если это работает, то это может быть так просто, как если бы вы не вносили изменения на свой сервер heroku?
git add -A
git commit -m "Changed ALLOWED_HOSTS in settings.py"
git push heroku master
Комментарии:
1. Большое спасибо за ваше предложение, проблема в том, что я в окне… so
heroku local
не будет запускаться, так как я использую gunicorn, а gunicorn в настоящее время используетfcntl
, который не поддерживает Windows.2. Он должен быть ALLOWED_HOSTS = [ ‘0.0.0.0’, ‘the-yogify.herokuapp.com ‘, ‘127.0.0.1’ ]. В любом случае спасибо.
Ответ №3:
Попробуйте это:
Добавить *
ALLOWED_HOST
в настройках.
ALLOWED_HOSTS = [
'*',
'http://the-yogify.herokuapp.com/',
'https://the-yogify.herokuapp.com/',
'the-yogify.herokuapp.com',
'the-yogify.herokuapp.com/',
'127.0.0.1',
]
Он скажет django обслуживать все хосты.
Комментарии:
1. удивительно, что он показывает ту же самую ошибку. Не изменяется ни одна буква. : (
2. Итак, я начинаю понимать, что даже сообщение об ошибке касается разрешенных хостов, но реальная проблема где-то в другом месте.
3. И в целях безопасности это решение не рекомендуется, даже если бы оно сработало.
4. Хорошо, слушайте, удалите остальные хосты, которые вы добавили,
ALLOWED_HOST
и просто сохраните*
. Попробуйте.5. это так странно… Я знаю.