Django配置文件裏的STATIC_ROOT、STATICFILES_DIRS、STATIC_URL的區別

要清楚它們的區別,就要搞清楚這三個常量是幹什麼用的。

1、STATIC_ROOT

# BASE_DIR 是項目的絕對地址
STATIC_ROOT = os.path.join(BASE_DIR, 'xxxxxx')

這個常量在開發模式中不會用到,在部署的時候纔會用到。

部署的時候執行python manage.py collectstatic,django會把所有App下的static文件都複製到STATIC_ROOT文件夾下

 

2、STATICFILES_DIRS

開發模式中需要用到。靜態文件一般放在兩個地方:

(1)每個App下面的static目錄

(2)項目根目錄下的static目錄(因爲有些靜態文件不是某個app獨有的)

STATICFILES_DIRS = (
    os.path.join(BASE_DIR, 'common_static'),
)

STATICFILES_DIRS告訴django,首先到STATICFILES_DIRS裏面尋找靜態文件,其次再到各個app的static文件夾裏面找

注意:django查找靜態文件是惰性查找,查找到第一個,就停止查找了

 

3、STATIC_URL

STATIC_URL = '/static/'

django利用STATIC_URL來讓瀏覽器可以直接訪問靜態文件

這樣假如你項目根目錄/static/下有一個123.png的圖片

那麼就可以直接通過瀏覽器http://IP:端口號/static/123.png來訪問你的圖片了

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章