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创建和删除目录的方法
Apr 29 Python
在Python中处理字符串之isdecimal()方法的使用
May 20 Python
利用Python实现颜色色值转换的小工具
Oct 27 Python
200行自定义python异步非阻塞Web框架
Mar 15 Python
Python编程实现微信企业号文本消息推送功能示例
Aug 21 Python
python基础_文件操作实现全文或单行替换的方法
Sep 04 Python
Python 实现引用其他.py文件中的类和类的方法
Apr 29 Python
Python计算开方、立方、圆周率,精确到小数点后任意位的方法
Jul 17 Python
Flask框架Flask-Principal基本用法实例分析
Jul 23 Python
Window10下python3.7 安装与卸载教程图解
Sep 30 Python
python反爬虫方法的优缺点分析
Nov 25 Python
python 如何读、写、解析CSV文件
Mar 03 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实现将GB编码转换为UTF8
2006/11/25 PHP
php empty函数 使用说明
2009/08/10 PHP
PHP实现手机归属地查询API接口实现代码
2012/08/27 PHP
php创建sprite
2014/02/11 PHP
php写入数据到CSV文件的方法
2015/03/14 PHP
php使用curl打开https网站的方法
2015/06/17 PHP
PHP实现广度优先搜索算法(BFS,Broad First Search)详解
2017/09/16 PHP
Mac下关于PHP环境和扩展的安装详解
2019/10/17 PHP
javascript 异常处理使用总结
2009/06/21 Javascript
js获取浏览器的可视区域尺寸的实现代码
2011/11/30 Javascript
JS实现图片预加载无需等待
2012/12/21 Javascript
js数组操作常用方法
2014/05/08 Javascript
javascript中对Date类型的常用操作小结
2016/05/19 Javascript
nodejs微信公众号支付开发
2016/09/19 NodeJs
JavaScript实现父子dom同时绑定两个点击事件,一个用捕获,一个用冒泡时执行顺序的方法
2017/03/30 Javascript
jQuery实现radio第一次点击选中第二次点击取消功能
2017/05/15 jQuery
nodejs开发微信小程序实现密码加密
2017/07/11 NodeJs
Vuex实现计数器以及列表展示效果
2018/03/10 Javascript
vue文件树组件使用详解
2018/03/29 Javascript
js正则相关知识点专题
2018/05/10 Javascript
使用VueRouter的addRoutes方法实现动态添加用户的权限路由
2019/06/03 Javascript
JavaScript定时器设置、使用与倒计时案例详解
2019/07/08 Javascript
用jQuery实现抽奖程序
2020/04/12 jQuery
[01:45]亚洲邀请赛互动指南虚拟物品介绍
2015/01/30 DOTA
python如何爬取个性签名
2018/06/19 Python
python游戏地图最短路径求解
2019/01/16 Python
CSS3中颜色线性渐变实战
2015/07/18 HTML / CSS
解决CSS3 transition-delay 属性默认值0不带单位失效的问题
2020/10/29 HTML / CSS
使用Html5、CSS实现文字阴影效果
2018/01/17 HTML / CSS
override和overload的区别
2016/03/09 面试题
《青蛙看海》教学反思
2014/04/23 职场文书
个人剖析材料范文
2014/09/30 职场文书
2015年党员自我剖析材料
2014/12/17 职场文书
文明单位汇报材料
2014/12/24 职场文书
创业计划书之蛋糕店
2019/08/29 职场文书
导游词之上海东方明珠塔
2019/09/25 职场文书