配置static目錄


背景

在一個項目中,難免會有css文件,js文件以及圖片,這些東西一般都是不會改動的,那么在項目中應該把他們放到項目中的何處才合適呢?

答案就是把它們都放到一個static目錄下,因此,首先應該在項目下新建一個目錄 static

在settings.py中配置 static 目錄的路徑

雖然已經創建好了static 目錄,但是如何在項目中導入該目錄下的文件呢?首先應該在settings.py 文件中配置它的路徑

打開 settings.py 文件,在最下面添加下面幾行代碼

STATICFILES_DIRS = (
    os.path.join(BASE_DIR, "static"),    # BASE_DIR是項目的絕對路徑,在連上static,就是static目錄的路徑了
)

思考:兩個static各自代表什么

在settings.py中添加完上述的代碼后會有這樣兩個static

上圖中的兩個static雖然名字一樣,但是作用卻千差萬別

STATIC_URL = '/statics/' 相當於給static目錄取了一個別名,以后再前端引入static目錄里面
的文件時,直接用/static/jquery.js就可以了,也就是說這里引入文件時使用的static是個別名,
而與那個static目錄沒有關系

os.path.join 里面添加的static就是存放js,css等文件的目錄名了。

所以,static目錄的名字可以隨便改,只要在settings.py中配置好它的正確路徑就可以了,

而項目中引用的時候用的是它的別名,而不管這個目錄的真實名稱是什么

在項目中引入static目錄下的文件

在配置好static目錄的路徑后,就可以在項目中導入它里面的文件了,那么如何導入呢?Django提供了兩種方法

方式一

直接使用 static 名導入,注意,這里的static 是別名

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>index</title>
</head>
<body>
    <script src="/static/jquery.js">   <!-- 直接通過別名static查找 -->
    </script>
</body>
</html>

方式二(推薦使用)

通過 {% load staticfiles %} 跟 {% static %} 導入

{% load staticfiles %}   <!-- 在此處先進行導入 -->
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>index</title>
</head>
<body>
    <script src="{% static 'jquery.js' %}">   <!-- 這樣也可以找到 -->
    </script>
</body>
</html>

創建static目錄的規則

注意:一般不會將static目錄放在整個項目下,而是每個應用下放一個static文件,這樣看起來更加整潔

那么,如果將static目錄放在了應用下,settings.py中的路徑也應該作出相應的修改

假設在blog應用下放一個static目錄,將settings.py中的配置改一下

STATICFILES_DIRS = (
    os.path.join(BASE_DIR, "blog", "static"),   # 應該在這里將blog的目錄也添加進去
)

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM