[英]Deploying to heroku changing DEBUG = False results in 500 error
我使用Django 1.9和Python 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.