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深入学习之上下文管理器
Aug 31 Python
学习python之编写简单简单连接数据库并执行查询操作
Feb 27 Python
pandas DataFrame数据转为list的方法
Apr 11 Python
python保存数据到本地文件的方法
Jun 23 Python
使用pandas读取文件的实现
Jul 31 Python
python爬虫解决验证码的思路及示例
Aug 01 Python
快速解决docker-py api版本不兼容的问题
Aug 30 Python
Django实现CAS+OAuth2的方法示例
Oct 30 Python
python中自带的三个装饰器的实现
Nov 08 Python
Python函数参数定义及传递方式解析
Jun 10 Python
python中strip(),lstrip(),rstrip()函数的使用讲解
Nov 17 Python
python 监控服务器是否有人远程登录(详细思路+代码)
Dec 18 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
咖啡机如何保养和日常清洁?
2021/03/03 冲泡冲煮
PHP 强制下载文件代码
2010/10/24 PHP
thinkphp关于简单的权限判定方法
2017/04/03 PHP
php+js实现裁剪任意形状图片
2018/10/31 PHP
IE6下出现JavaScript未结束的字符串常量错误的解决方法
2010/11/21 Javascript
Javascript通过overflow控制列表闭合与展开的方法
2015/05/15 Javascript
谈谈encodeURI和encodeURIComponent以及escape的区别与应用
2015/11/24 Javascript
WordPress中鼠标悬停显示和隐藏评论及引用按钮的实现
2016/01/12 Javascript
基于javascript实现图片滑动效果
2016/05/07 Javascript
Node.js 文件夹目录结构创建实例代码
2016/07/08 Javascript
JS+Canvas绘制动态时钟效果
2017/11/10 Javascript
vue.js模仿京东省市区三级联动的选择组件实例代码
2017/11/22 Javascript
vue中使用refs定位dom出现undefined的解决方法
2017/12/21 Javascript
Vue cli 引入第三方JS和CSS的常用方法分享
2018/01/20 Javascript
基于VuePress 轻量级静态网站生成器的实现方法
2018/04/17 Javascript
ES6 Promise对象的应用实例分析
2019/06/27 Javascript
[46:43]DOTA2上海特级锦标赛D组小组赛#1 EG VS COL第三局
2016/02/28 DOTA
[01:05]主宰至宝剑心之遗
2017/03/16 DOTA
使用Python进行稳定可靠的文件操作详解
2013/12/31 Python
Python深入学习之上下文管理器
2014/08/31 Python
Python实现的简单文件传输服务器和客户端
2015/04/08 Python
python动态网页批量爬取
2016/02/14 Python
python爬虫中get和post方法介绍以及cookie作用
2018/02/08 Python
在python中bool函数的取值方法
2018/11/01 Python
Python基础学习之时间转换函数用法详解
2019/06/18 Python
django orm模块中的 is_delete用法
2020/05/20 Python
PIL.Image.open和cv2.imread的比较与相互转换的方法
2020/06/03 Python
详解python的变量缓存机制
2021/01/24 Python
美国花园雕像和家居装饰网上商店:Design Toscano
2019/03/09 全球购物
制药工程专业个人求职自荐信
2014/01/25 职场文书
大学生学年自我鉴定
2014/02/10 职场文书
商场主管竞聘书
2014/03/31 职场文书
社区爱国卫生月活动总结
2014/06/30 职场文书
2015年大学宣传部工作总结
2015/05/26 职场文书
《钓鱼的启示》教学反思
2016/02/18 职场文书
pytest进阶教程之fixture函数详解
2021/03/29 Python