Heroku Django DEBUG设置未应用

Mur*_*rph 10 django heroku

我目前在Heroku上有一个正在运行的生产Django应用程序.不幸的是,我无法关闭DEBUGHeroku上的设置.在本地关闭它可以正常工作,但是当推到Heroku(之后heroku config:set DEBUG=False)时,它不适用.

错误页面仍然是默认页面DEBUG,而不是模板根目录中的404,403和500模板.

我还尝试使用DJANGO_DEBUG设置,以防任何环境冲突DEBUG,并将结果转换为设置文件中的布尔值.heroku config显示环境中的设置是否正确.这是在Django 1.3,Heroku Cedar上.

任何提示或解决方案?

Yuj*_*ita 15

你的django settings.py文件甚至可以查看环境吗?

默认情况下,它不关心您在环境中设置的任何内容(通过"config:set").如果您将环境"转换"为布尔值,请确保正确地投射它.bool('False')仍然是True.

最简单的方法是检测环境变量是否存在,这样您就不必担心类型转换或配置的特定格式.

DEBUG = os.environ.get('DEBUG', False)

要禁用调试,请从环境中删除变量,而不是尝试键入强制转换...它似乎更可靠和万无一失.config:unset DEBUG

  • 谢谢您的帮助.实际上通过使用`bool(os.environ.get('DEBUG',''))`终于让它全面工作.所以True是任何字符串,False是空字符串.从环境中删除它会阻止它,但只是因为无法使用`DEBUG = os.environ.get('DEBUG',False)`set启用它. (4认同)
  • 这正是问题所在.您根本不进行任何类型转换:键入config:set DEBUG = False等于将django的DEBUG变量设置为`DEBUG ='False'`,它仍然是`bool(DEBUG)== True`.核心区别是python boolean False与'False'之间的区别. (2认同)