1. 程式人生 > >靜態文件 | Django開發

靜態文件 | Django開發

TTT str cnblogs from 讀取 配置 div 動態 img

# 項目中css、圖片、js都是靜態文件;

-- 配置靜態文件
-- setting.py

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

-- 項目根目錄下創建static目錄,細分應用,再創建應用目錄

mysite/static/myapp/

-- 在模板中使用硬編碼

/static/my_app/myexample.jpg

-- 在模板中使用static編碼

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

-- 附:訪問靜態文件的邏輯路徑與物理路徑;

# 在Django中,先匹配這個邏輯路徑,在去後面的物理路徑尋找靜態資源;
# 可以起到一個隱藏文件的作用,你頁面看到的路徑並不是靜態文件存放的真正路徑;
STATIC_URL = /static/

STATICFILES_DIRS = [
os.path.join(BASE_DIR, static),
]

-- 實例
-- setttings.py中配置

默認:STATIC_URL = /static/
添加:STATICFILES_DIRS = [ os.path.join(BASE_DIR, static) ]

-- 在項目目錄下添加文件static,裏面再創建針對項目的文件目錄booktest,放置靜態文件;
-- 在要展示的頁面添加圖片路徑(index.html)

<body>
<h1>首頁</h1>
<!-- 靜態文件展示 -->
<img src="/static/booktest/a1.jpg"/>
</body>

-- 訪問頁面展示靜態文件
-- 動態生成地址(與上面不同的是,這種方式是直接訪問物理路徑,STATIC_URL = ‘/static/‘沒用)
-- 動態生成圖片路徑(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.中靜態文件路徑發生了改變,與setting.py匹配的邏輯路徑不同,無法讀取文件;
# 在2.中對應settings.py中匹配的物理路徑,始終可以匹配文件;

靜態文件 | Django開發