Django使用模板后无法找到静态资源文件问题解决


Posted in Python onJuly 19, 2019

环境配置

  • Django版本1.11
  • python版本3.6.2

前言

在编写Django网站的时候,在涉及模板方面,一些简单的例子都没有问题,但这些例子都有一个共同点,那就是所使用的模板没有需要的静态资源文件。当涉及到模板中需要静态资源文件,如css,js等文件的时候,如果我们不做什么处理,直接按前端写好的给我们放入到templates文件中时,即如下形式:

|templates

|----js

|--------xxxx.js

|----css

|--------xxxx.css

|----xxxx.html

当运行网站的时候,我们会发现所有需要加载的都没有加载进来,原因便是在渲染页面的时候,Django的处理器将目录对应到了根目录,所以我们使用的其实是在根目录下的静态资源文件(其实并没有),所以也就会出现404错误。

解决方法

首先settings.py文件中应有如下代码

STATIC_URL = '/static/'

这是用来定义静态目录URL,一般都已经给出

在每个要使用到静态资源的模板中,我们应该将路径改为static下的目录,比如

/static/my_app/example.jpg

或者

{% load static %}
 <img src="{% static "my_app/example.jpg" %}" alt="My image"/>

当然,不使用static也行,可以自己定义存放静态资源文件的目录,如下:

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在根目录下用来收集所有静态资源文件。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
详解Python中的array数组模块相关使用
Jul 05 Python
Python使用PDFMiner解析PDF代码实例
Mar 27 Python
Python 中开发pattern的string模板(template) 实例详解
Apr 01 Python
Python嵌套式数据结构实例浅析
Mar 05 Python
python网络爬虫 Scrapy中selenium用法详解
Sep 28 Python
Python2比较当前图片跟图库哪个图片相似的方法示例
Sep 28 Python
python print 格式化输出,动态指定长度的实现
Apr 12 Python
python2.7使用scapy发送syn实例
May 05 Python
Python如何将模块打包并发布
Aug 30 Python
详解Python中Pyyaml模块的使用
Oct 08 Python
使用python操作lmdb对数据读取的实例
Dec 11 Python
python unichr函数知识点总结
Dec 16 Python
Django模板Templates使用方法详解
Jul 19 #Python
python GUI图形化编程wxpython的使用
Jul 19 #Python
Django 外键的使用方法详解
Jul 19 #Python
python原类、类的创建过程与方法详解
Jul 19 #Python
Django 全局的static和templates的使用详解
Jul 19 #Python
python之拟合的实现
Jul 19 #Python
Django 过滤器汇总及自定义过滤器使用详解
Jul 19 #Python
You might like
php Static关键字实用方法
2010/06/04 PHP
PHP三层结构(上) 简单三层结构
2010/07/04 PHP
php 带逗号千位符数字的处理方法
2012/01/10 PHP
浅析php中jsonp的跨域实例
2013/06/21 PHP
解析php php_openssl.dll的作用
2013/07/01 PHP
thinkPHP实现表单自动验证
2014/12/24 PHP
PHP实现批量生成App各种尺寸Logo
2015/03/19 PHP
PHP实现通过get方式识别用户发送邮件的方法
2015/07/16 PHP
javascript实现dom元素可拖动
2016/03/21 Javascript
JavaScript实现图片自动加载的瀑布流效果
2016/04/11 Javascript
ashx文件获取$.ajax()方法发送的数据
2016/05/26 Javascript
getElementById().innerHTML与getElementById().value的区别
2016/10/27 Javascript
JS实现的适合做faq或menu滑动效果示例
2016/11/17 Javascript
Bootstrap进度条学习使用
2017/02/09 Javascript
深入浅析Vue不同场景下组件间的数据交流
2017/08/15 Javascript
AjaxFileUpload.js实现异步上传文件功能
2019/04/19 Javascript
Vue列表循环从指定下标开始的多种解决方案
2020/04/08 Javascript
[05:13]TI4 中国战队 机场出征!!
2014/07/07 DOTA
[01:34]传奇从这开始 2016国际邀请赛中国区预选赛震撼开启
2016/06/26 DOTA
python绘图库Matplotlib的安装
2014/07/03 Python
Python heapq使用详解及实例代码
2017/01/25 Python
对pyqt5中QTabWidget的相关操作详解
2019/06/21 Python
python读取并定位excel数据坐标系详解
2019/06/26 Python
Django 反向生成url实例详解
2019/07/30 Python
孕妇装中的著名品牌:Isabella Oliver(伊莎贝拉·奥利弗)
2016/10/31 全球购物
西班牙国家航空官方网站:Iberia
2017/11/16 全球购物
大学生写自荐信的技巧
2014/01/08 职场文书
创意广告词
2014/03/17 职场文书
质量保证书范本
2014/04/29 职场文书
室内设计专业自荐信
2014/05/31 职场文书
信仰心得体会
2014/09/05 职场文书
JS监听Esc 键触发事键
2021/04/14 Javascript
vue首次渲染全过程
2021/04/21 Vue.js
python爬虫之爬取笔趣阁小说
2021/04/22 Python
Python使用海龟绘图实现贪吃蛇游戏
2021/06/18 Python
MySQL系列之七 MySQL存储引擎
2021/07/02 MySQL