Django 400 Bad Request при запуске в production с gunicorn

Я получаю ошибку 400 на всех моих страницах, когда я перенес свое приложение django с одного хостинга на другой, хостинг, на который я переехал, это Scalingo.

Мой settings.py файл:

DEBUG = os.getenv("DEBUG") == "True"
ALLOWED_HOSTS = [x.strip() for x in os.getenv("ALLOWED_HOSTS").split(",")]

Мои переменные окружения

ALLOWED_HOSTS="my-app.osc-fr.scalingo.fr,.localhost,127.0.0.1,[::1]"
DEBUG="False"

Я связался со службой поддержки, которая сообщила мне, что это должно быть проблема конфигурации моего приложения.

Все существующие ответы здесь, которые я нашел, советуют убедиться, что переменная ALLOWED_HOSTS корректна, и я уже проверил, что она включает необходимые адреса в соответствии с документацией django-специфической платформы хостинга.

В конце концов я отладил проблему, сделав print(ALLOWED_HOSTS) в файле settings.py и просмотрев журналы сборки.

Оказалось, что переменные окружения на этой платформе загружаются с включенными кавычками, в результате чего получается ['"my-app.osc-fr.scalingo.fr','.localhost','127.0.0.1','[::1]"'].

Я отредактировал переменные среды, чтобы убрать кавычки, и все работает!

Не знаю, почему кавычки были приняты во внимание, учитывая, что я могу иметь их на других хостинг-платформах и локально, и они игнорируются. Если кто-нибудь знает, мне было бы интересно узнать!

Вернуться на верх