父文件:index.html

<!DOCTYPE html>
<html lang="en">
<head>
<title>{% block title %}Index{% endblock %}</title>
<meta charset="utf-8">
<script src="https://cdn.bootcss.com/jquery/1.10.2/jquery.min.js"></script>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="../static/css/index.css">
<script src="static/js/index.js"></script>
<link rel="stylesheet" href="https://cdn.bootcss.com/bootstrap/4.1.0/css/bootstrap.min.css">
<script src="https://cdn.bootcss.com/jquery/3.2.1/jquery.min.js"></script>
<script src="https://cdn.bootcss.com/popper.js/1.12.5/umd/popper.min.js"></script>
<script src="https://cdn.bootcss.com/bootstrap/4.1.0/js/bootstrap.min.js"></script>
</head>
<body>
<nav class="navbar navbar-expand-sm bg-dark navbar-dark">
<!--导航栏--> <a class="navbar-brand" href="/">
{% block ico %}<img src="/static/images/ppl.jpg" alt="logo" style="width:50px;"> {% endblock %}
</a>
<!--<h2>胶囊</h2>-->
<!--<p>胶囊导航:</p>--> <ul class="nav nav-pills">
<li class="nav-item">
<a class="nav-link" href="/">首页</a>
</li>
<li class="nav-item">
<a class="nav-link" href="/insert/" id="insert">insertPerson</a>
</li>
<li class="nav-item">
<a class="nav-link" href="/get1/">addAccount</a>
</li>
<li class="nav-item">
<a class="nav-link" href="/search1/">SearchPerson</a>
</li>
<li class="nav-item">
<a class="nav-link disabled" href="#">SearchPerson</a>
</li>
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" data-toggle="dropdown" href="#">注册/登录</a>
<div class="dropdown-menu">
<a class="dropdown-item" href="#">注册</a>
<a class="dropdown-item" href="#">登录</a>
<a class="dropdown-item" href="#">登出</a></div>
</li>
</ul> </nav>
{% block index %}
<br>
<div id="demo" class="carousel slide" data-ride="carousel"> <!-- 指示符 -->
<ul class="carousel-indicators">
<li data-target="#demo" data-slide-to="0" class="active"></li>
<li data-target="#demo" data-slide-to="1"></li>
<li data-target="#demo" data-slide-to="2"></li>
</ul> <!-- 轮播图片 -->
<div class="carousel-inner" >
<div class="carousel-item active">
<img src="http://static.runoob.com/images/mix/img_fjords_wide.jpg" style="width:100%">
</div>
<div class="carousel-item">
<img src="http://static.runoob.com/images/mix/img_nature_wide.jpg" style="width:100%">
</div>
<div class="carousel-item">
<img src="http://static.runoob.com/images/mix/img_mountains_wide.jpg" style="width:100%">
</div>
</div> <!-- 左右切换按钮 -->
<a class="carousel-control-prev" href="#demo" data-slide="prev">
<span class="carousel-control-prev-icon"></span>
</a>
<a class="carousel-control-next" href="#demo" data-slide="next">
<span class="carousel-control-next-icon"></span>
</a> </div>
<div class="foot-box"></div>
{% endblock %} <!--实现鼠标滑过导航栏增加active类属性-->
<script>
$(document).ready(function(){
$('.nav-link').hover(
function(){
$(this).addClass('active');
},
function(){
$(this).removeClass('active');
}
);
});
</script>
</body>
</html>

子文件-继承自index.html

{% extends "index.html" %}
{% block title %}Insert{% endblock %} {% block index %} <!--<form action="/do/" method="post">-->
<!--姓名:<input type="text" name="username"><br>-->
<!--年龄:<input type="text" name="userage"><br>-->
<!--<input type="reset">-->
<!--<button type="submit">提交</button>-->
<!--</form>--> <div class="container">
<br>
<a href="#demo" class="btn btn-primary" data-toggle="collapse">插入新人信息</a>
<div id="demo" class="collapse">
<form action="/do/" method="post">
<div class="form-group">
<label for="user">Username:</label>
<input type="text" class="form-control" id="user" name="username" placeholder="Enter Username">
</div>
<div class="form-group">
<label for="age">Userage:</label>
<input type="password" class="form-control" id="age" name="userage" placeholder="Enter Userage">
</div>
<div class="form-check">
<label class="form-check-label">
<input class="form-check-input" type="checkbox"> Remember me
</label>
</div>
<button type="submit" class="btn btn-primary">Submit</button>
</form>
</div>
</div> {% endblock %}  

注意!!!

在index.html文件中的

    {% block ico %}<img src="/static/images/ppl.jpg" alt="logo" style="width:50px;"> {% endblock %}

src="/static/images/ppl.jpg"   和    src="static/images/ppl.jpg" 完全不一样的效果,前者被继承后子页面的logo可正常显示,后者则会出现图片无法加载的问题。

因为在settings中我们已经设置了静态文件收集路径,在base模板中索引静态文件的时候需要从static根路径下进行索引,故需要加"/",此坑难发现,还需多学习。

 

  

Django模板继承后出现logo图片无法加载的问题的更多相关文章

  1. Django 04 模板标签(if、for、url、with、autoeacape、模板继承于引用、静态文件加载)

    Django 04 模板标签(if.for.url.with.autoeacape.模板继承于引用.静态文件加载) 一.if.for.url.with.autoescape urlpatterns = ...

  2. [py][mx]django模板继承-课程列表页

    课程列表页分析 1,机构类型 2,所在地区 3.排序 学习人数 先分析下 纵观页面,页头页脚都一样. django提供了模板继承. 至少 不同页面的title 面包屑路径 content内容不一致,以 ...

  3. Django 2.0 学习(13):Django模板继承和静态文件

    Django模板继承和静态文件 模板继承(extend) Django模板引擎中最强大也是最复杂的部分就是模板继承了,模板继承可以让我们创建一个基本的"骨架"模板,它可以包含网页中 ...

  4. [py]django模板继承

    参考 1.展示arr,d等数据类型 2.逻辑for if / url获取 3.获取内置变量 django模板继承 通过搞一个base.html 这个base.html可以包含两类 block片断 其他 ...

  5. 使用图片预加载,解决断网后无法从后台获取提示网络异常的logo图片的问题

    项目中有需求,断网后,显示小提示窗,里面包含网络异常提示语和异常小logo图片. 在实际操作时,遇到,断网后,无法从后台获取异常小logo图片. 我是才用图片预加载的方法解决这个问题的,解决方法如下: ...

  6. Python学习---django模板继承180123

    django模板继承  --20180123 a.include 模板标签 b.extend(继承)模板标签 ------include 模板标签 该标签允许在(模板中)包含其它的模板的内容. 标签的 ...

  7. django学习-8.django模板继承(block和extends)

    1.前言 django模板继承的作用:模板可以用继承的方式来实现复用,减少冗余内容. 一般来说,一个网站里一般存在多个网页的头部和尾部内容都是一致的,我们就可以通过模板继承来实现复用. 父模板用于放置 ...

  8. 代码: 两列图片瀑布流(一次后台取数据,图片懒加载。下拉后分批显示图片。图片高度未知,当图片onload后才显示容器)

    代码: 两列图片瀑布流(一次后台取数据,无ajax,图片懒加载.下拉后分批显示图片.图片高度未知,当图片onload后才显示容器) [思路]: 图片瀑布流,网上代码有多种实现方式,也有各类插件.没找到 ...

  9. ajax读取图片后排列问题(先加载完图片再排列)

    网上找了个瀑布流的图片排列插件.从数据库读取图片路径后显示时出现了位置重叠问题. $.ajax({ type: "POST", url: "index.aspx" ...

随机推荐

  1. Python学习笔记7:函数对象及函数对象作參数

    一.lambda函数 比如: fun1 = lambda x,y: x + y print fun1(3,4) 输出:7 lambda生成一个函数对象.该函数參数为x,y,返回值为x+y.函数对象赋给 ...

  2. Makefile 13——理解make的解析行为

    make是以从上到下的顺序读入Makefile中的内容的.然而,处理Makefile中的语句却并非完全从上到下. 大体上,make处理一个Makefile分为两个阶段.第一个阶段包含: 1.make读 ...

  3. c3p0 APPARENT DEADLOCK!!! Creating emergency threads for unassigned pending tasks

    2018-01-04 15:02:03,319 ---com.mchange.v2.async.ThreadPoolAsynchronousRunner: com.mchange.v2.async.T ...

  4. 27. Retrofit2 -- How to Use Dynamic Urls for Requests

    27. Retrofit2 -- How to Use Dynamic Urls for Requests Retrofit tutorial 用户案例场景 如何使用动态 Url 相对于基本地址,动态 ...

  5. cannot be translated into a null value due to being declared as a primitive type. Consid

    严重: Servlet.service() for servlet [note-portal] in context with path [] threw exception [Request pro ...

  6. push images to private repostory

    1.从官网pull 所需要的基础镜像 docker pull microsoft/mssql-server-windows-express 2.打上私有仓库标签 docker tag microsof ...

  7. 【转】移动App测试中的最佳做法

    一说起软件测试,测试员想到肯定是去检查文件,功能,API,性能并确定软件是否安全,以及关于软件特定部分的其他事项.但是对于移动测试,测试员不得不基于用户移动使用模式考虑移动相关的功能. 本文是基于我的 ...

  8. ASP.NET中JSON对时间进行序列化和反序列化

    JSON格式不直接支持日期和时间.DateTime值显示为“/Date(0+0800)/”形式的JSON字符串,其中第一个数字是GMT时区中自1970年1月1 日午夜以来按正常时间(非夏令时)经过的毫 ...

  9. html5 webwork

    在Web开发的时候经常会遇到浏览器不响应事件进入假死状态,甚至弹出“脚本运行时间过长“的提示框,如果出现这种情况说明你的脚本已经失控了. 一个浏览器至少存在三个线程:js引擎线程(处理js).GUI渲 ...

  10. jquery 复选框全选/全不选切换 普通DOM元素点击选中/取消选中切换

    1.要选中的复选框设置统一的name 用prop() prop() 方法设置或返回被选元素的属性和值. $("#selectAll").click(function(){ $(&q ...