激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

腳本之家,腳本語(yǔ)言編程技術(shù)及教程分享平臺(tái)!
分類導(dǎo)航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務(wù)器之家 - 腳本之家 - Python - Django中STATIC_ROOT和STATIC_URL及STATICFILES_DIRS淺析

Django中STATIC_ROOT和STATIC_URL及STATICFILES_DIRS淺析

2021-02-19 00:24呂秀軍 Python

這篇文章主要給大家介紹了關(guān)于Django中STATIC_ROOT和STATIC_URL及STATICFILES_DIRS的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起看看吧

前言

本文主要給大家介紹關(guān)于Django中STATIC_ROOT和STATIC_URL及STATICFILES_DIRS的相關(guān)內(nèi)容,分享出來供大家參考學(xué)習(xí),下面話不多說了,來一起看看詳細(xì)的介紹吧。

詳細(xì)如下:

首先,我們配置靜態(tài)文件,要在setting.py里面加入如下幾行代碼:

settings.py

?
1
2
3
4
5
6
7
8
9
# the settings above
# STATIC SETTINGS
STATIC_URL = '/static/'
# BASE_DIR 是項(xiàng)目的絕對(duì)地址
STATIC_ROOT = os.path.join(BASE_DIR, 'collect_static')
#以下不是必須的
STATICFILES_DIRS = (
 os.path.join(BASE_DIR, 'common_static'),
)

1.STATIC_ROOT

STATIC_ROOT 是在部署靜態(tài)文件時(shí)(pyhtonmanage.pycollectstatic)所有的靜態(tài)文靜聚合的目錄,STATIC_ROOT要寫成絕對(duì)地址,在這里,比如我的項(xiàng)目mysite是/home/mysite/

那么STATIC_ROOT 為 /home/mysite/collect_static/

當(dāng)部署項(xiàng)目時(shí),在終端輸入:

?
1
python manage.py collectstatic

django會(huì)把所有的static文件都復(fù)制到STATIC_ROOT文件夾下

2.STATICFILES_DIRS

STATIC_ROOT 是在部署的時(shí)候才發(fā)揮作用, 而實(shí)際情況下,靜態(tài)文件的一般安放位置有兩種:

1.一種就是在每個(gè)app里面新建一個(gè)static文件夾,將靜態(tài)文件放到里面,在加載靜態(tài)文件時(shí),比如要在模板中用到靜態(tài)文件,django會(huì)自動(dòng)在每個(gè)app里面搜索static文件夾(所以,不要把文件夾的名字寫錯(cuò)哦, 否則django就找不到你的文件夾了)

2.另一種,就是在所有的app文件外面,建立一個(gè)公共的文件夾, 因?yàn)橛行╈o態(tài)文件不是某個(gè)app獨(dú)有的,那么就可以把它放到一個(gè)公共文件夾里面,方便管理(注意,建立一個(gè)公共的靜態(tài)文件的文件夾只是一種易于管理的做法,但是不是必須的,app是可以跨app應(yīng)用靜態(tài)文件的,因?yàn)樽詈笏械撵o態(tài)文件都會(huì)在STATIC_ROOT里面存在)

那現(xiàn)在的問題是如何讓django知道你把一些靜態(tài)文件放到app以外的公共文件夾中呢,那就需要配置STATICFILES_DIRS了

?
1
2
3
STATICFILES_DIRS = (
 os.path.join(BASE_DIR, 'common_static'),
)

STATICFILES_DIRS告訴django,首先到STATICFILES_DIRS里面尋找靜態(tài)文件,其次再到各個(gè)app的static文件夾里面找(注意, django查找靜態(tài)文件是惰性查找,查找到第一個(gè),就停止查找了)

3.STATIC_URL

那么到此為止,靜態(tài)文件的機(jī)制就可以運(yùn)作了,但是有一個(gè)問題,我能不能通過url直接訪問我在項(xiàng)目中的靜態(tài)文件呢,答案肯定是啦,但是,注意,你是在瀏覽器是訪問,你不可能輸入你的靜態(tài)文件的本地絕對(duì)地址吧,比如我的一種圖片的本地地址

為 /home/mysite/common_static/myapp/photo.png

那么別人不可能在瀏覽器上直接輸入:

http://192.168.1.2:8000/home/mysite/common_static/myapp/photo.png

這樣子,瀏覽器會(huì)報(bào)錯(cuò), 沒有該頁(yè)面

那么django是如何讓瀏覽器也可以訪問服務(wù)器上的靜態(tài)文件呢,前面已經(jīng)說了,直接訪問服務(wù)器本地的地址是不行的,那就需要一個(gè)映射,django利用STATIC_URL來讓瀏覽器可以直接訪問靜態(tài)文件,比如:

?
1
STATIC_URL = '/static/'

那么可以在瀏覽器上輸入:

http://192.168.1.2:8000/static/common_static/myapp/photo.png

那么就相當(dāng)與訪問/home/mysite/common_static/myap/photo.png

所以在瀏覽器上,利用前綴 STATIC_URL的具體內(nèi)容,來映射STATIC_ROOT,
HTTP://192.168.1.2:8000/static 相當(dāng)于 本地地址的STATIC_ROOT

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問大家可以留言交流,謝謝大家對(duì)服務(wù)器之家的支持。

原文鏈接:https://blog.csdn.net/jj546630576/article/details/78606531

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产精品久久久久久久久久大牛 | www国产网站| av在线观 | 国产欧美精品一区二区三区四区 | 国产色片| 99在线精品视频免费观看20 | 国产日韩精品欧美一区视频 | 精品一区二区三区电影 | 免费国产一级特黄久久 | 成人性视频免费网站下载软件 | 日韩精品a在线观看 | 天堂亚洲一区 | 91麻豆精品国产91久久久更新资源速度超快 | 香蕉久草在线 | 一区在线看 | 黄视频网站免费在线观看 | 成人免费观看在线视频 | 韩国三级日本三级香港三级黄 | 久久国产中文字幕 | 国产精品久久久久免费视频 | 草逼一区 | 日韩在线播放第一页 | 免费一级特黄毛片视频 | 国产精品久久久久影院老司 | 成人在线精品视频 | 麻豆视频免费网站 | 羞羞的小视频 | 国内精品国产三级国产a久久 | 国产精品一区二区三区99 | 成人国产视频在线观看 | 欧美日韩精品不卡一区二区三区 | 欧产日产国产精品乱噜噜 | 成人毛片视频在线播放 | 九九热视频这里只有精品 | 男女羞羞的视频 | 欧美毛片免费观看 | 91在线视频观看 | 免费观看一区 | 国产成人强伦免费视频网站 | 国产1区2区在线观看 | 天天看成人免费毛片视频 |