Django使用模板后無(wú)法找到靜態(tài)資源文件問(wèn)題解決
環(huán)境配置
- Django版本1.11
- python版本3.6.2
前言
在編寫(xiě)Django網(wǎng)站的時(shí)候,在涉及模板方面,一些簡(jiǎn)單的例子都沒(méi)有問(wèn)題,但這些例子都有一個(gè)共同點(diǎn),那就是所使用的模板沒(méi)有需要的靜態(tài)資源文件。當(dāng)涉及到模板中需要靜態(tài)資源文件,如css,js等文件的時(shí)候,如果我們不做什么處理,直接按前端寫(xiě)好的給我們放入到templates文件中時(shí),即如下形式:
|templates |----js |--------xxxx.js |----css |--------xxxx.css |----xxxx.html
當(dāng)運(yùn)行網(wǎng)站的時(shí)候,我們會(huì)發(fā)現(xiàn)所有需要加載的都沒(méi)有加載進(jìn)來(lái),原因便是在渲染頁(yè)面的時(shí)候,Django的處理器將目錄對(duì)應(yīng)到了根目錄,所以我們使用的其實(shí)是在根目錄下的靜態(tài)資源文件(其實(shí)并沒(méi)有),所以也就會(huì)出現(xiàn)404錯(cuò)誤。
解決方法
首先settings.py文件中應(yīng)有如下代碼
STATIC_URL = '/static/'
這是用來(lái)定義靜態(tài)目錄URL,一般都已經(jīng)給出
在每個(gè)要使用到靜態(tài)資源的模板中,我們應(yīng)該將路徑改為static下的目錄,比如
/static/my_app/example.jpg
或者
{% load static %}
<img src="{% static "my_app/example.jpg" %}" alt="My image"/>
當(dāng)然,不使用static也行,可以自己定義存放靜態(tài)資源文件的目錄,如下:
STATICFILES_DIRS = [ os.path.join(BASE_DIR, "static"), '/var/www/static/', ]
我們需要注意的是,這里的static文件夾是處于你所引用模板的app下的static文件夾,盡量不要把資源放在根目錄下static文件夾,因?yàn)楦夸浵碌膕tatic文件夾一般是用來(lái)將所有STATICFILES_DIRS中所有文件夾中的文件,以及各app中static中的文件都復(fù)制過(guò)來(lái),為的是把這些文件放到一起是用apache等部署的時(shí)候更方便,如下
STATIC_ROOT = os.path.join(BASE_DIR, 'collected_static')
我們就定義了一個(gè)collected_static在根目錄下用來(lái)收集所有靜態(tài)資源文件。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
如何使用pyinstaller打包多個(gè)和單個(gè)python文件詳解
最近需要將python寫(xiě)的程序打包分發(fā)給其他同事使用,下面這篇文章主要給大家介紹了關(guān)于如何使用pyinstaller打包多個(gè)和單個(gè)python文件的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-06-06
在Python的一段程序中如何使用多次事件循環(huán)詳解
循環(huán)是我們?cè)谌粘i_(kāi)發(fā)中是必不可少會(huì)遇到的,下面這篇文章主要給大家介紹了關(guān)于在Python的一段程序中如何使用多次事件循環(huán)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面來(lái)一起看看吧。2017-09-09
python實(shí)現(xiàn)簡(jiǎn)單的單變量線性回歸方法
TensorFlow的reshape操作 tf.reshape的實(shí)現(xiàn)
python實(shí)現(xiàn)經(jīng)緯度采樣的示例代碼
python實(shí)現(xiàn)Oracle查詢(xún)分組的方法示例

