概念
- 項目中的CSS、圖檔、js都是靜态檔案
- 一般會将靜态檔案放到一個單獨的目錄中,以友善管理
- 在html頁面中調用時,也需要指定靜态檔案的路徑,Django中提供了一種解析的方式配置靜态檔案路徑
- 靜态檔案可以放在項目根目錄下,也可以放在應用的目錄下,由于有些靜态檔案在項目中是通用的,是以推薦放在項目的根目錄下,友善管理
配置靜态檔案
- 在項目根目錄下建立靜态檔案目錄,再建立img、css、js目錄
- 在項目/settings.py檔案中定義靜态檔案查找路徑(假如靜态檔案夾名為:static)
STATICFILES_DIRS = [os.path.join(BASE_DIR, 'static'),]
- 為了安全,可以在項目/settings.py檔案中配置STATIC_URL項,隐藏真實路徑
# STATIC_URL = '/static/' STATIC_URL = '/myini/'
- 在模闆中寫成固定路徑,後期維護太麻煩,可以使用static标簽,根據配置項生成靜态檔案路徑。(備注:這種方案可以隐藏真實的靜态檔案路徑,但是結合Nginx布署時,會将所有的靜态檔案都交給Nginx處理,而不用轉到Django部分,這項配置就無效了)
<html>
<head>
<title>靜态檔案</title>
</head>
<body>
修改前:<img src="/static/img/sj.jpg"/>
<hr>
修改後:<img src="/abc/img/sj.jpg"/>
<hr>
動态配置:
{%load static from staticfiles%}
<img src="{%static "img/sj.jpg" %}"/>
</body>
</html>