django1.3新加入了一個靜態資源管理的app,django.contrib.staticfiles。在以往的django版本中,靜態資源的管理一貫都是個問題。部分app發佈的時候會帶上靜態資源文件,在部署的時候你必須手動從各個app中將這些靜態資源文件複製到同一個static目錄。在引入staticfiles後,你只須要執行./manage.py collectstatic就能夠很方便的將所用到app中的靜態資源複製到同一目錄。python
staticfiles的引入,方便了django靜態文件的管理,不過感受staticfiles的文檔寫的並非太清楚,初次使用的時候仍是讓我有些困惑。django
下面簡單的介紹一下staticfiles的主要配置:服務器
- STATIC_ROOT:運行manage.py collectstatic後靜態文件將複製到的目錄。注意:不要把你項目的靜態文件放到這個目錄。這個目錄只有在運行collectstatic時纔會用到。我最開始想固然的覺得這個目錄和MEDIA_ROOT的做用是相同的,導致在開發環境下一直沒法找到靜態文件。
- STATIC_URL:設置的static file的起始url,這個只能夠在template裏面引用到。這個參數和MEDIA_URL的含義差很少。
- STATICFILES_DIRS:除了各個app的static目錄之外還須要管理的靜態文件位置,好比項目公共的靜態文件差很少。和TEMPLATE_DIRS的含義差很少。
- 各個APP下static/目錄下的靜態文件django的開發服務器會自動找到,這點和之前APP下的templates目錄差很少。
- 在urls.py中加入靜態文件處理的代碼
from django.contrib.staticfiles.urls import staticfiles_urlpatterns# ... the rest of your URLconf goes here ... urlpatterns += staticfiles_urlpatterns()