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