Ошибка сервера (500) при попытке развернуть приложение django с DEBUG=False на heroku

#python #django

Вопрос:

Я пытаюсь развернуть приложение django на heroku. когда переменная ОТЛАДКИ имеет значение False, я получаю сообщение об ошибке сервера (500). Все работает нормально, когда ОТЛАДКА верна. Как решить эту проблему ? Вот некоторые из журналов:

 2021-08-17T10:15:08.603841 00:00 app[web.1]: 10.1.59.205 - - [17/Aug/2021:10:15:08  0000] "GET /connexion?next=/ HTTP/1.1" 500 145 "-" "Mozilla/5.0 (Windows NT 10.0;
Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.131 Safari/537.36 Edg/92.0.902.67"
2021-08-17T10:15:08.603943 00:00 heroku[router]: at=info method=GET path="/connexion?next=/" host=pnl-testapi.herokuapp.com request_id=edc211c1-244d-49ad-aac6-6e2c1d9
cf5c0 fwd="160.119.178.105" dyno=web.1 connect=0ms service=63ms status=500 bytes=403 protocol=https
 

Комментарии:

1. Пожалуйста, предоставьте журнал ошибок. Ошибка 500 означает, что что-то пошло не так на стороне сервера, но без дополнительной информации об ошибке невозможно ответить на ваш вопрос

2. ДА. Эта ошибка начала возвращаться, когда я установил и настроил whitenoise.

Ответ №1:

Вы добавили свой домен в переменную ALLOWED_HOSTS в settings.py?

 ALLOWED_HOSTS = ['.herokuapp.com']
 

Правка: Вы добавили журнал доступа веб-сервера, пожалуйста, также добавьте исключение. Вы пробовали запускать свой проект локально, чтобы у вас был быстрый и легкий доступ к консоли?

Комментарии:

1. Вот локальное сообщение об ошибке: [17 / Авг. / 2021 13:15:01] «ПОЛУЧИТЬ соединение / HTTP / 1.1» 500 145.

Ответ №2:

Исправлена ошибка сервера (500) при попытке развернуть приложение django с DEBUG=False на heroku

pip установите whitenoise

Отредактируйте свой settings.py файл и добавьте WhiteNoise в список промежуточного программного обеспечения, помимо всего прочего промежуточного программного обеспечения, кроме программного обеспечения безопасности Django:

 MIDDLEWARE = [
  # 'django.middleware.security.SecurityMiddleware',
  'whitenoise.middleware.WhiteNoiseMiddleware',
  # ...
]
 

Если вы устанавливаете django-heroku , попробуйте прокомментировать его, а также прокомментировать django_heroku.settings(locals()) .

Вы можете повернуть свой DEBUG = False и передислоцироваться в Heroku. Этот метод действительно сработал для меня. Вы можете попробовать.

Вы также можете ознакомиться whitenoise с документацией: http://whitenoise.evans.io/en/stable/