本來以為靜態(tài)文件設(shè)置搞懂了罕扎,結(jié)果弄到快要部署階段了,發(fā)現(xiàn)完全沒懂庆锦,看了一晚上文檔捅位,記錄一下
首先,關(guān)于STATIC的設(shè)置搂抒,都是在項(xiàng)目的settings里面的
1: STATIC_URL
這個(gè)設(shè)置的其實(shí)是路由艇搀,比如我目前的項(xiàng)目里面
STATIC_URL='/static/'
這樣我再前端面板里面如果寫成下面這種結(jié)構(gòu),就可以直接訪問目標(biāo)文件了
<img id="first_social_icon" src="{% static 'mainpage_img/github.jpg' %}"/>
這個(gè)STATIC_URL的設(shè)置就是上述鏈接里面的static
2: STATICFILES_DIRS
原來我一直以為這個(gè)是存放static文件的路徑指示設(shè)置求晶。
但是看了文檔以后發(fā)現(xiàn)焰雕,這個(gè)只是一個(gè)額外附加出來的存放static文件的地方,特別用于開發(fā)過程中芳杏。
也就是什么意思呢矩屁,正常來說,我有5個(gè)app蚜锨,每個(gè)app下面都會(huì)放一個(gè)static文件夾档插,以存放對(duì)這個(gè)app有關(guān)系的文件,但是我還是可以另外單獨(dú)設(shè)置一些文件夾亚再,放其他我想放的文件郭膛。
3: STATICFILES_FINDERS
上面文檔里面提到了STATICFILES_FINDERS,這個(gè)其實(shí)就是設(shè)置尋找static文件的順序。
4: STATIC_ROOT
這個(gè)設(shè)置在開發(fā)過程中沒有使用的必要氛悬,這個(gè)主要用于部署時(shí)候的靜態(tài)文件采集
你可以使用collectstatic來進(jìn)行收集所有的靜態(tài)文件则剃,如下面文檔所述
5:自我測試部分
先看一下我在開發(fā)環(huán)境中關(guān)于靜態(tài)文件的設(shè)置
settings文件內(nèi)的設(shè)置
這一段設(shè)置表示耘柱,我在根目錄下的static文件夾內(nèi)存放靜態(tài)文件
STATIC_URL = '/static/'
STATICFILES_DIRS = [
os.path.join(BASE_DIR, "static"),
]
來看一下文件結(jié)構(gòu)
我們來看一下,如果我把STATICFILES_DIRS這個(gè)設(shè)置給屏蔽了
棍现,Django是否真的會(huì)去每個(gè)app里查找對(duì)應(yīng)的靜態(tài)文件调煎。
雖然我們把STATICFILES_DIR設(shè)置對(duì)應(yīng)文件里面的內(nèi)容給屏蔽了,但是django還是通過app內(nèi)的static文件夾找到了文件己肮,可以使用
但是因?yàn)閎ootstrap和css及js文件無法使用士袄,所以頁面整體框架就沒了。