我在我的部署服务器(heroku上)上设置DEBUG = False
时出现了问题。
我以前从未遇到过这种情况,但将调试设置为false并没有摆脱项目的调试模式。这意味着当有500错误时,它会显示错误,并且404错误显示所有我的URL。
奇怪的是,当我登录服务器并从中获取设置值时,django.conf import settings settings.DEBUG
显示为False,这是我为生产服务器设置的内容。TEMPLATE_DEBUG
也设置为False。
我不知道我是否曾看到过这种情况,即DEBUG = False
但仍处于调试模式。有什么想法吗?
编辑:
我想补充一下,因为人们在将调试关闭为False时经常会遇到500或400错误。我没有遇到任何错误,我的项目只是像在DEBUG模式下一样运行。
# settings/dev.py
from .base import *
DEBUG = True
TEMPLATE_DEBUG = DEBUG
if not DEBUG:
ALLOWED_HOSTS = ['localhost']
SECRET_KEY = 'localsecret1234123412341234'
# settings/prod.py
from .base import *
import dj_database_url, os
DEBUG = os.environ.get("DEBUG", False)
TEMPLATE_DEBUG = DEBUG
ALLOWED_HOSTS = ['mydomain.com']
SECRET_KEY = os.environ["DJANGO_SECRET_KEY"]
STATICFILES_STORAGE = 'whitenoise.django.GzipManifestStaticFilesStorage'
STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')
DATABASES = {}
DATABASES['default'] = dj_database_url.config()
DEBUG=False
,然后在 manage.py shell 中验证它是否实际上被设置为 False。还要访问一个我知道会返回 404 的页面,并查看它是否返回我的 404.html 模板或显示所有的 URL。 - awwesterheroku restart
重新启动,但是出现了相同的行为。 - awwesterprintenv
,会有关于你的DEBUG
设置的参考吗?我仍然觉得这里可能涉及到一个环境变量。 - Withnail