13

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

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

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

任何提示或解决方案?

4

2 回答 2

19

您的 django settings.py 文件是否在环境中查找?

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

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

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

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

于 2013-04-28T00:33:24.447 回答
2

问题是环境变量不是布尔值,而是字符串。所以请放置在下面的行中settings.py

DEBUG = (os.environ.get('DEBUG_VALUE') == 'True')

于 2019-06-30T21:17:23.233 回答