摘要:即使将设置设置为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的env变量在settings / production.py中尝试的不同方案:
DEBUG = os.environ.get('DJANGO_DEBUG', False)
DEBUG = bool(os.environ.get('DJANGO_DEBUG', False))
DEBUG = False
(不带环境变量的硬代码)
ValueError: Missing staticfiles manifest entry for 'images/favicon/manifest.json'
,这是一个非常奇怪且令人误解的错误。已采取的其他措施:
DEBUG
或对DJANGO_SETTINGS
变量的引用,它们很清楚。我还搜索了与IIS服务器交互的其他.py文件(wsgi.py,manage.py)。 DEBUG = False
并获得相同的结果。我从未见过这样的事情。其他环境变量运行良好,因此似乎在此布尔值附近。为什么不对python设置中的DEBUG变量进行硬编码呢?
希望能帮助您找出下一个看点。
答案 0 :(得分:1)
环境变量始终是字符串。即使非空字符串包含字符串“ False”,也始终为True。
您需要将值与字符串进行比较:
DEBUG = (os.environ.get('DJANGO_DEBUG') == "True")
或者,当您要在非调试模式下运行时,只需从IIS设置中完全删除该变量即可。
另一个错误不是“怪异或误导”,而是静态文件的问题,在非调试模式下使用ManifestStorage后端之前,您需要修复该问题。