#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/