繁体   English   中英

部署到heroku更改DEBUG = False导致500错误

[英]Deploying to heroku changing DEBUG = False results in 500 error

我使用Django 1.9Python 3.4.3 在我的应用程序上更改DEBUG = False时,我的应用程序的所有页面都出现500错误。

注意:Django管理页面也会导致500错误。 其他一些帖子报告在管理页面上没有收到此错误,我是。 我也试过这篇文章中的所有内容

# 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')

如果将ADMINS添加到设置中会更好:

ADMINS = (('Your name', 'Your@EMAIL'),)

有了这个,您将在发生错误时收到更好的报告,您可以使用它来调试错误。

希望能帮助到你

Whitenoise正在寻找找不到的东西。 我也有这个问题,从来没有让它工作。 根据您拥有的静态文件数量,确定是否确实需要缓存它们。

如果你不这样做,就把它留下来。
如果你这样做,你需要找到whitenoise试图找到的东西并给它。 也许这会有所帮助: https//stackoverflow.com/a/28385055/1322179

您可能忘记在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文档倾向于省略中间件添加 - 这会导致错误 - 并且可能还有其他缺少的应用程序。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM