Сводка: Мой сайт работает в режиме отладки, даже если для него установлено значение DEBUG = False.
К вашему сведению, я исследовал это и нашел несколько отличных ответов и идей по тестированию в этих смежных вопросах (ни один из которых не помог, хотя логически они ДОЛЖНЫ иметь): django DEBUG = False по-прежнему работает в режиме отладки
и Heroku Django DEBUG Настройка не применяется
Переменная среды IIS FastCGIHandler:
Имя = DJANGO_DEBUG
Значение = False
Примечание. При удалении этой переменной среды возникает ошибка 500 независимо от значения параметра production.py.
Настройки / production.py:
Различные сценарии пробовали в файле settings / production.py с использованием переменной env, установленной в False, в моем FastCGIHandler:
DEBUG = os.environ.get('DJANGO_DEBUG', False)
- РЕЗУЛЬТАТ: Сайт работает в режиме отладки
DEBUG = bool(os.environ.get('DJANGO_DEBUG', False))
- РЕЗУЛЬТАТ: Сайт работает в режиме отладки
DEBUG = False
(жесткий код без env var)
- РЕЗУЛЬТАТ: Сайт не работает, возвращает 500 страниц, а отслеживание ошибок дает
ValueError: Missing staticfiles manifest entry for 'images/favicon/manifest.json'
, что является очень странной и вводящей в заблуждение ошибкой.
Другие действия:
- Я проверил файлы base.py и production.py для любых других ссылок на
DEBUG
или на переменную DJANGO_SETTINGS
, и они понятны. Я также искал другие файлы .py, с которыми взаимодействует сервер IIS (wsgi.py, manage.py).
- Я даже пытался установить
DEBUG = False
в файле base.py с теми же результатами.
- Я установил python-decouple и попытался использовать это.
- Я установил django-environment и попытался использовать его (у меня на этом сервере работает другой сайт django, использующий django-environment для доступа к переменным окружения, который работает нормально.)
Я никогда не видел ничего подобного. Другие переменные среды работают нормально, так что, похоже, это около логического значения. И почему не работает жесткое кодирование переменной DEBUG в настройках Python ???
Буду признателен за любую помощь в выяснении, где искать дальше.