【发布时间】:2023-03-22 06:20:01
【问题描述】:
总结:即使设置设置为 DEBUG = False,我的站点仍以 DEBUG 模式运行。
仅供参考,我对此进行了研究,并在这些相关问题中发现了一些出色的回答和测试想法(这些问题都没有帮助,尽管从逻辑上讲它们应该有):django DEBUG=False still runs in debug mode 和 Heroku Django DEBUG Setting not applied
IIS FastCGIHandler 环境变量:
姓名 = DJANGO_DEBUG
值 = False
注意:无论 production.py 中的设置如何,删除此环境变量都会导致 500 错误。
settings/production.py:
在我的 FastCGIHandler 中使用设置为 False 的环境变量在 settings/production.py 中尝试了不同的场景:
-
DEBUG = os.environ.get('DJANGO_DEBUG', False)- 结果:站点在调试模式下运行
-
DEBUG = bool(os.environ.get('DJANGO_DEBUG', False))- 结果:站点在调试模式下运行
-
DEBUG = False(硬编码 w/o env var)- 结果:网站无法正常工作,返回 500 页,错误跟踪显示
ValueError: Missing staticfiles manifest entry for 'images/favicon/manifest.json',这是一个非常奇怪且具有误导性的错误。
- 结果:网站无法正常工作,返回 500 页,错误跟踪显示
采取的其他措施:
- 我已经检查了 base.py 和 production.py 文件中对
DEBUG或DJANGO_SETTINGS变量的任何其他引用,它们很清楚。我还搜索了 IIS 服务器与之交互的其他 .py 文件(wsgi.py、manage.py)。 - 我什至尝试在 base.py 文件中设置
DEBUG = False,结果相同。 - 我安装了 python-decouple 并尝试使用它。
- 我安装了 django-environ 并尝试使用它(我在此服务器上运行了另一个 django 站点,使用 django-environ 来访问运行良好的环境变量。)
我从来没有见过这样的事情。其他环境变量工作正常,所以它似乎在这个布尔值附近。为什么在 python 设置中硬编码 DEBUG 变量不起作用???
我们将不胜感激任何帮助找出下一步看哪里的帮助。
【问题讨论】:
标签: python django python-3.x environment-variables