簡體   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