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 搭建Web站点之Web服务器网关接口
Nov 06 Python
Python使用分布式锁的代码演示示例
Jul 30 Python
解决pycharm安装后代码区不能编辑的问题
Oct 28 Python
python中实现控制小数点位数的方法
Jan 24 Python
python多线程共享变量的使用和效率方法
Jul 16 Python
softmax及python实现过程解析
Sep 30 Python
python矩阵运算,转置,逆运算,共轭矩阵实例
May 11 Python
Python中zipfile压缩文件模块的基本使用教程
Jun 14 Python
Python unittest基本使用方法代码实例
Jun 29 Python
Python根据URL地址下载文件并保存至对应目录的实现
Nov 15 Python
教你使用TensorFlow2识别验证码
Jun 11 Python
Python 中的单分派泛函数你真的了解吗
Jun 22 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 从一个数组中随机的取出若干个不同的数实例
2016/12/31 PHP
php使用PDO获取结果集的方法
2017/02/16 PHP
Javascript下的keyCode键码值表
2007/04/10 Javascript
innerHTML,outerHTML,innerText,outerText的用法及区别解析
2013/12/16 Javascript
JS替换字符串中字符即替换全部而不是第一个
2014/06/04 Javascript
jquery模拟LCD 时钟的html文件源代码
2014/06/16 Javascript
JavaScript驾驭网页-获取网页元素
2016/03/24 Javascript
JavaScript实现瀑布流以及加载效果
2017/02/11 Javascript
JS获取鼠标位置距浏览器窗口距离的方法示例
2017/04/11 Javascript
jQuery 添加样式属性的优先级别方法(推荐)
2017/06/08 jQuery
JS实现的input选择图片本地预览功能示例
2018/08/29 Javascript
webpack4实现不同的导出类型
2019/04/09 Javascript
python模拟登陆Tom邮箱示例分享
2014/01/13 Python
python pandas中DataFrame类型数据操作函数的方法
2018/04/08 Python
Python RabbitMQ消息队列实现rpc
2018/05/30 Python
详解python中的装饰器
2018/07/10 Python
Python面向对象程序设计示例小结
2019/01/30 Python
Tensorflow矩阵运算实例(矩阵相乘,点乘,行/列累加)
2020/02/05 Python
Anaconda3+tensorflow2.0.0+PyCharm安装与环境搭建(图文)
2020/02/18 Python
解决pytorch 交叉熵损失输出为负数的问题
2020/07/07 Python
Pandas中DataFrame基本函数整理(小结)
2020/07/20 Python
python绘制雷达图实例讲解
2021/01/03 Python
纯CSS3实现的井字棋游戏
2020/11/25 HTML / CSS
美国网上订购鲜花:FTD
2016/09/23 全球购物
Weekendesk意大利:探索多种引人入胜的周末主题
2016/10/14 全球购物
关于Assembly命名空间的三个面试题
2015/07/23 面试题
新锐科技Java程序员面试题
2016/07/25 面试题
房屋继承公证书
2014/04/10 职场文书
关于学习的演讲稿
2014/05/10 职场文书
教师党的群众路线教育实践活动学习笔记
2014/11/05 职场文书
群众路线教育实践活动学习笔记内容
2014/11/06 职场文书
幼儿园教师节感谢信
2015/01/23 职场文书
党员年终个人总结
2015/02/14 职场文书
校车安全管理责任书
2015/05/11 职场文书
升学宴学生致辞
2015/07/27 职场文书
解决vue中provide inject的响应式监听
2022/04/19 Vue.js