Django使用模板后無法找到靜態(tài)資源文件問題解決
環(huán)境配置
- Django版本1.11
- python版本3.6.2
前言
在編寫Django網(wǎng)站的時候,在涉及模板方面,一些簡單的例子都沒有問題,但這些例子都有一個共同點(diǎn),那就是所使用的模板沒有需要的靜態(tài)資源文件。當(dāng)涉及到模板中需要靜態(tài)資源文件,如css,js等文件的時候,如果我們不做什么處理,直接按前端寫好的給我們放入到templates文件中時,即如下形式:
|templates |----js |--------xxxx.js |----css |--------xxxx.css |----xxxx.html
當(dāng)運(yùn)行網(wǎng)站的時候,我們會發(fā)現(xiàn)所有需要加載的都沒有加載進(jìn)來,原因便是在渲染頁面的時候,Django的處理器將目錄對應(yīng)到了根目錄,所以我們使用的其實(shí)是在根目錄下的靜態(tài)資源文件(其實(shí)并沒有),所以也就會出現(xiàn)404錯誤。
解決方法
首先settings.py文件中應(yīng)有如下代碼
STATIC_URL = '/static/'
這是用來定義靜態(tài)目錄URL,一般都已經(jīng)給出
在每個要使用到靜態(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文件夾一般是用來將所有STATICFILES_DIRS中所有文件夾中的文件,以及各app中static中的文件都復(fù)制過來,為的是把這些文件放到一起是用apache等部署的時候更方便,如下
STATIC_ROOT = os.path.join(BASE_DIR, 'collected_static')
我們就定義了一個collected_static在根目錄下用來收集所有靜態(tài)資源文件。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Python?虛擬機(jī)集合set實(shí)現(xiàn)原理及源碼解析
這篇文章主要為大家介紹了Python?虛擬機(jī)集合set實(shí)現(xiàn)原理及源碼解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-03-03python3.4 將16進(jìn)制轉(zhuǎn)成字符串的實(shí)例
今天小編就為大家分享一篇python3.4 將16進(jìn)制轉(zhuǎn)成字符串的實(shí)例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-06-06python實(shí)現(xiàn)應(yīng)用程序在右鍵菜單中添加打開方式功能
這篇文章主要介紹了python實(shí)現(xiàn)應(yīng)用程序在右鍵菜單中添加打開方式功能,本文分步驟給大家介紹的非常詳細(xì),具有參考借鑒價值,需要的朋友參考下吧2017-01-01python實(shí)現(xiàn)在一個畫布上畫多個子圖
今天小編就為大家分享一篇python實(shí)現(xiàn)在一個畫布上畫多個子圖,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-01-01python的pytest框架之命令行參數(shù)詳解(下)
這篇文章主要介紹了python的pytest框架之命令行參數(shù)詳解,今天將繼續(xù)更新其他一些命令選項(xiàng)的使用,和pytest收集測試用例的規(guī)則,需要的朋友可以參考下2019-06-06Python WordCloud 修改色調(diào)的實(shí)現(xiàn)方式
這篇文章主要介紹了Python WordCloud 修改色調(diào)的實(shí)現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-03-03