我正在使用 Django 1.9 和 Python 3.4.3 。 在我的应用上更改DEBUG = False时,我的应用的所有页面都出现500错误。
注意:Django管理页面也会导致500错误。一些 其他帖子报告在管理页面上没有收到此错误,我是。我也尝试了post
中的所有内容
# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/1.8/howto/static-files/
STATICFILES_STORAGE = 'whitenoise.django.GzipManifestStaticFilesStorage'
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')
STATICFILES_DIRS =(
os.path.join(BASE_DIR, 'static'),
)
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
答案 0 :(得分:3)
如果将ADMINS添加到设置中会更好:
ADMINS = (('Your name', 'Your@EMAIL'),)
通过这种方式,您可以在发生错误时收到更好的报告,以便调试错误。
希望有所帮助
答案 1 :(得分:2)
Whitenoise正在寻找找不到的东西。我也有这个问题,从来没有让它工作。根据您拥有的静态文件数量,确定是否确实需要缓存它们。
如果你不这样做,就把它放在外面 如果你这样做,你需要找到whitenoise试图找到的东西并给它。也许这会有所帮助:https://stackoverflow.com/a/28385055/1322179
答案 2 :(得分:2)
您可能忘记在settings.py MIDDLEWARE设置中包含whitenoice中间件。编辑您的settings.py文件并将WhiteNoise添加到MIDDLEWARE_CLASSES列表,除了Django的SecurityMiddleware之外的所有其他中间件:
MIDDLEWARE_CLASSES = [
# 'django.middleware.security.SecurityMiddleware',
'whitenoise.middleware.WhiteNoiseMiddleware',
#...
]
当DEBUG = True时,这不是必需的,但是当DEBUG = False时,突然出现问题。不幸的是,Heroku在他们的文档中没有包含这个中间件,他们的演示应用程序在DEBUG = True中运行,因此很难找到问题。
可以在whitenoise文档中找到更多信息:http://whitenoise.evans.io/en/stable/django.html
逐步进行设置,了解您所缺少的内容。 Heroku文档倾向于省略中间件添加 - 这会导致错误 - 并且可能还有一些其他内容缺少您的应用程序。