django 靜态檔案的配置涉及到settings 中的三個配置項STATIC_URL、STATICFILES_DIRS及STATIC_ROOT
1. 開發伺服器中靜态檔案的配置及應用
(1)STATIC_URL
配置:預設情況下 settings 配置 STATIC_URL = '/static/'
應用:在 app 目錄下建立 static 檔案夾,将 style.css 放入,然後在模闆中可通過路徑/static/style.css 通路
(2)STATICFILES_DIRS
配置:STATICFILES_DIRS = (
os.path.join(BASE_DIR, "common_static"),
)
應用:在project 目錄建立 common_static 檔案夾,将 style.css 放入,然後在模闆中同樣通過路徑"/static/style.css"通路,或者在模闆頭部加上{%load staticfiles%}引入标簽庫,然後用"{% static "style.css " %}"通路。
說明:邏輯上來說上述兩種路徑中的靜态檔案都位于 static 檔案夾中,是以都需要通過/static路徑來通路;STATICFILES_DIRS所配置的靜态檔案目錄通常用于存放多個 app 共用的靜态檔案。
2. 部署伺服器中靜态檔案的配置及應用
配置:STATIC_ROOT = os.path.join(BASE_DIR, 'collected_static')
應用:在 project 目錄中建立collected_static檔案夾;
運作 manage.py collectstatic,即可将所有靜态檔案(包括STATIC_URL 及STATICFILES_DIRS)集中至collected_static;
(1)使用 nginx的配置
location /static {
alias /os/path/to/project/collected_static;
}
(2)直接使用 uwsgi
uwsgi --http :8000 --module project_name.wsgi --static-map /static=/os/path/to/collected_static