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/'沒用
1.3.1 動態生成圖片路徑(index.html)
# {% 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.3.2 原理
# # 在1.中靜態文件路徑發生了改變,與setting.py匹配的邏輯路徑不同,無法讀取文件; # # 在2.中對應settings.py中匹配的物理路徑,始終可以匹配文件;