涉及到的名詞
-
setting.py
中的STATIC_URL
顿锰、STATIC_ROOT
、STATICFILES_DIRS
他們都是存放靜態(tài)資源的地方
-
template
模板中static
俺附、staticfiles
一、 setting.py
STATIC_URL = '/static/'
STATICFILES_DIRS = [
os.path.join(BASE_DIR, "commonStatic/")
]
STATIC_ROOT = 'assert'
STATIC_URL
是在某個(gè)具體的App下新建static目錄铃彰,用來存放與App相關(guān)的靜態(tài)資源蜗巧。
STATICFILES_DIRS
是在項(xiàng)目目錄下新建commomStatic目錄睹簇,用來存放多個(gè)App之間公共的靜態(tài)資源。
STATIC_ROOT
是項(xiàng)目部署的時(shí)候才會(huì)用到的寥闪,是配合Nginx使用的太惠。他的作用就是收集(復(fù)制)每個(gè)App下static中靜態(tài)資源以及項(xiàng)目commonStatic中的靜態(tài)資源到STATIC_ROOT對(duì)應(yīng)的assert文件夾中。使用python manage.py collectstatic
來做這一步操作疲憋。所以STATIC_ROOT 與 STATICFILES_DIRS的路徑不能重復(fù)凿渊。
二、template中{%load static%} 與 {%load staticfiles%}
{%load static%}
無論是STATIC_URL引入的靜態(tài)資源缚柳,還是STATICFILES_DIRS引入的靜態(tài)資源埃脏,在html模板中使用的時(shí)候, 路徑都為static秋忙。
staticfiles
是早先版本為了處理非本地存儲(chǔ)資源彩掐。
在Django 1.10之前:staticfiles加載一個(gè)模板標(biāo)簽,可以管理靜態(tài)不能(或不容易)的非本地存儲(chǔ);
來自Django 1.10:contrib.staticfiles應(yīng)用程序仍然存在但其模板標(biāo)簽將被刪除只有{%static%}模板標(biāo)簽保留;
從Django 2.0(我相信):{%load staticfiles%}被刪除.
?? that's all!