天天看點

Django進階——靜态檔案

1. 靜态檔案

# 項目中css、圖檔、js都是靜态檔案;      

1.1 配置靜态檔案

1.1.1 setting.py

# 網址上顯示的路徑;
# STATIC_URL = '/static/'
# 實體路徑的配置;
# STATICFILES_DIRS = [
#     os.path.join(BASE_DIR, 'static'),
# ]      

1.1.2 項目根目錄下建立static目錄,細分應用,再建立應用目錄

# mysite/static/myapp/      

1.1.3 再模闆中使用寫死

# /static/my_app/myexample.jpg      

1.1.4 在模闆中使用static編碼

# { % load static from staticfiles %}
# <img src="{ % static "my_app/myexample.jpg" %}" alt="My p_w_picpath"/>      

1.2 執行個體

1.2.1 setttings.py中配置

# 預設:STATIC_URL = /static/''
# 添加:STATICFILES_DIRS = [
# os.path.join(BASE_DIR, 'static')
# ]      

1.2.2 在項目目錄下添加檔案static,裡面再建立針對項目的檔案目錄booktest,放置靜态檔案;

1.2.3 在要展示的頁面添加圖檔路徑(index.html)

<body>
<h1>首頁</h1>
<!-- 靜态檔案展示 -->
<img src="/static/booktest/a1.jpg"/>
</body>      

1.2.4 通路頁面展示靜态檔案

1.3 動态生成位址

# 與上面不同的是,這種方式是直接通路邏輯路徑,STATIC_URL = '/static/'沒用

# {% load static from staticfiles %}
# <!DOCTYPE html>
# <html>
# <head>
# <title>首頁</title>
# </head>
# <body>
# <h1>首頁</h1>
# <!-- 1.靜态檔案展示 -->
# <img src="/abc/booktest/a1.jpg"/>
# <br>
# <!-- 2.動态生成路徑,通路靜态檔案 -->
# <img src="{% static '/booktest/a1.jpg'%}"/>
# </body>
# </html>      
# # 在1.中靜态檔案路徑發生了改變,與setting.py比對的邏輯路徑不同,無法讀取檔案;
# # 在2.中對應settings.py中比對的實體路徑,始終可以比對檔案;