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 相关文章推荐
python3使用tkinter实现ui界面简单实例
Jan 10 Python
Python中装饰器的一个妙用
Feb 08 Python
python中日期和时间格式化输出的方法小结
Mar 19 Python
在Python中处理时间之clock()方法的使用
May 22 Python
彻底理解Python list切片原理
Oct 27 Python
python获取多线程及子线程的返回值
Nov 15 Python
Python 实现数据结构中的的栈队列
May 16 Python
python实现批量文件重命名
Oct 31 Python
Pytorch 神经网络—自定义数据集上实现教程
Jan 07 Python
Python实现CNN的多通道输入实例
Jan 17 Python
python中安装django模块的方法
Mar 12 Python
python爬虫学习笔记之pyquery模块基本用法详解
Apr 09 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实现登陆验证码(类似条行码状)
2006/10/09 PHP
浅析PHP微信支付通知的处理方式
2014/05/25 PHP
PHP输出英文时间日期的安全方法(RFC 1123格式)
2014/06/13 PHP
PHP采集类Snoopy抓取图片实例
2014/06/19 PHP
PHP中的self关键字详解
2019/06/23 PHP
跨域表单提交状态的变相判断代码
2009/11/12 Javascript
基于jQuery的合并表格中相同文本的相邻单元格的代码
2011/04/06 Javascript
读jQuery之八 包装事件对象
2011/06/21 Javascript
javascript获取选中的文本的方法代码
2013/10/30 Javascript
javascript框架设计读书笔记之数组的扩展与修复
2014/12/02 Javascript
jQuery中DOM树操作之使用反向插入方法实例分析
2015/01/23 Javascript
JS实现websocket长轮询实时消息提示的效果
2017/10/10 Javascript
解决vue打包之后静态资源图片失效的问题
2018/02/21 Javascript
jquery简单实现纵向的无缝滚动代码实例
2019/04/01 jQuery
layui实现显示数据表格、搜索和修改功能示例
2020/06/03 Javascript
vue select 获取value和lable操作
2020/08/28 Javascript
[59:59]EG vs IG 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
Django 使用Ajax进行前后台交互的示例讲解
2018/05/28 Python
解决python文件双击运行秒退的问题
2019/06/24 Python
python实现计算器功能
2019/10/31 Python
如何基于python操作excel并获取内容
2019/12/24 Python
dpn网络的pytorch实现方式
2020/01/14 Python
使用CSS3实现圆角,阴影,透明
2014/12/23 HTML / CSS
日常奢侈品,轻松购物:Verishop
2019/08/20 全球购物
武汉世纪畅想数字传播有限公司.NET笔试题
2014/07/22 面试题
办公室主任先进事迹
2014/01/18 职场文书
挂科检讨书范文
2014/02/20 职场文书
人事经理岗位职责范本
2014/08/04 职场文书
励志演讲稿600字
2014/08/21 职场文书
支行行长竞聘报告
2014/11/06 职场文书
小学教师年度个人总结
2015/02/05 职场文书
学生会部长竞选稿
2015/11/19 职场文书
三好学生竞选稿
2015/11/21 职场文书
高中班主任工作总结(范文)
2019/08/20 职场文书
Redis RDB技术底层原理详解
2021/09/04 Redis
Mysql如何查看是否使用到索引
2022/12/24 MySQL