我目前在Heroku上有一个正在运行的生产Django应用程序。不幸的是,我无法关闭Heroku上的DEBUG
设置。在本地关闭它可以正常工作,但是当推送到Heroku时(heroku config:set DEBUG=False
之后),它不适用。
错误页面仍然是默认的DEBUG
页面,而不是模板根目录中的404,403和500模板。
我还尝试使用DJANGO_DEBUG
设置,以防与DEBUG
发生任何环境冲突,并将结果转换为设置文件中的布尔值。 heroku config
显示环境中的设置是正确的。这是在Django 1.3,Heroku Cedar。
任何提示或解决方案?
答案 0 :(得分:13)
您的django settings.py文件是否在环境中查看?
默认情况下,它并不关心您在环境中设置的任何内容(通过" config:set")。如果你正在铸造"将环境设置为布尔值,请确保正确地投射它。 bool(' False')仍为True。
最简单的方法是检测环境变量是否存在,这样您就不必担心类型转换或配置的特定格式。
DEBUG = os.environ.get('DEBUG', False)
要禁用调试,从环境中删除变量而不是尝试键入强制转换...它似乎更可靠和万无一失。 config:unset DEBUG
答案 1 :(得分:0)
问题在于环境变量不是布尔值,而是字符串。
因此,请放在settings.py
DEBUG_VALUE = (os.environ.get('DEBUG_VALUE') == 'True')