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

