2016-10-10 66 views
0

我的網站部署在Heroku上。除靜態文件外,一切都進展順利。 靜態文件在這條路上doctor_app/doctor_app/static/Heroku靜態文件不能用於django admin +文件未找到+ 404

在本地,django的管理面板工作正常。但在heroku上,它沒有找到任何靜態文件。

令人驚訝的是,當我與終端運行此命令。

heroku run cat doctor_app/static/admin/css/base.css 

它輸出base.css的內容。這意味着有靜態文件

我想知道爲什麼django沒有找到任何文件?

欲瞭解更多信息,這裏是我的settings.py

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

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

STATICFILES_DIRS = (
    os.path.join(PROJECT_ROOT, 'staticfiles'), 
) 

STATICFILES_STORAGE = 'whitenoise.django.GzipManifestStaticFilesStorage' 

STATIC_URL = '/static/' 
+0

你執行過「python manage.py collectstatic」嗎? –

+0

是的,我做到了。 @VijeshVenugopal –

+0

@AdilMalik通過「它找不到任何靜態文件」你是否說他們返回一個404錯誤?如果是這樣,你如何鏈接到你的模板中的靜態文件?另外,請將您的'settings.py'變量發佈到靜態文件,例如'STATICFILES_DIRS'等。 – YPCrumble

回答

3

這不是一個Django的錯誤。 django所做的就是準備好靜態文件並將它們收集到STATIC_ROOT中,這些都是你的情況。

請注意,爲django項目提供靜態文件通常不在django的責任範圍內。您可以參考django's doc on deploying static files並嘗試使用諸如uwsginginx之類的應用部署它們。

對於一個快速的嘗試,你可以追加靜態文件到djanog的路由,如所描述here:從django.conf導入設置 從django.conf.urls.static進口靜態

urlpatterns = [ 
    # ... the rest of your URLconf goes here ... 
] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT) 

至於你的問題已經提供,這可能適用於你。

+0

這幫了我很多!謝謝 –