2017-08-16 108 views
2

我有一個django網站部署到heroku和普通的靜態文件正在工作,但管理員靜態文件不是。Django管理靜態文件無法在Heroku上使用whitenoise

編輯:我使用gunicorn,但經過一些進一步的研究,似乎我可能需要使用類似nginx與gunicorn結合來完成我正在尋找的東西。任何人都可以建議嗎?

這裏是我的settings.py

PROJECT_ROOT = os.path.dirname(os.path.abspath(__file__)) 

STATIC_ROOT = os.path.join(PROJECT_ROOT, 'static') 
STATIC_URL = '/static/' 

STATIC_FILES_STORAGE = 'whitenoise.storage.CompressedManifestStaticFilesStorage' 

STATICFILES_DIRS = [os.path.join(PROJECT_ROOT, "staticfiles")] 

這些設置工作,爲我的正常的靜態文件,但就像我說的,管理文件後不工作。當它試圖加載靜態文件時,我在控制檯中得到一個404。當我進入管理員網址時,我所看到的是一個沒有CSS的頁面。只需顯示登錄字段和標題的原始瀏覽器即可。我無法分辨這是否是whitenoise的限制,我需要在別處託管文件,或者如果我錯過了某些東西。我寧願將所有內容都保存在Heroku中,因爲它現在對我來說是免費的。

+0

「不能正常工作」是什麼意思?請閱讀[問]有效提問的提示。 – Chris

+0

根本不工作。抱歉。我得到404用於管理靜態文件 – csling

+0

管理靜態文件是否在本地正常工作(當您在DEBUG模式下運行項目時)? –

回答

0

我一直有這個相同的問題 - 我的應用程序工作得很好,但django管理員應用程序的樣式不正確,因爲它部署在heroku上時找不到靜態文件(它在我的本地計算機上呈現得很好)

我終於得到它通過我的本地機器上運行collectstatic工作:

python manage.py collectstatic 

這會在我的主項目目錄的靜態/目錄(即其中manage.py駐留在同一目錄)。然後,我將admin /子目錄移至/ static /目錄(即settings.py所在的靜態目錄)。然後我重新部署到heroku &現在管理網站的樣式正確。希望這可以幫助!

相關問題