django开发引用boootstrap问题
问题描述
django开发网页,引用bootstrap直接拉控件导航条,但是开发过程中,base.html调试没问题,等到子模板引用父模板时,出现了无症状(控制台不报错)bug.
由于django由继承的bootstrap的三方包,因此,一般引入不是传统的。
请看base.html引入方式(结构正确,代码缺失)
{% load static %}
{% load bootstrap3 %}
<html>
...
<head>
{% block styles %}
{% bootstrap_css %}
{% endblock %}
<body>
{% block scripts %}
<script type="text/javascript" src="{% bootstrap_jquery_url %}"></script>
{% bootstrap_javascript %}
{% endblock %}
父模板加载没问题,看子模板
{% extends "base.html" %}
{% block style %}
{% endblock %}
......
{% block scripts %}
<script type="text/javascript" src="{% static 'xxxxxxx.js' %}"></script>
{% endblock %}
好了,子模板无法使用父模板的导航条了,控制台没有引入错误。
苦苦调试
自己解决方案
- 在子模板引入自己JS文件前,使用{{ block.super}},功能就是继承它,改造它,也适用于style(举一反三啦)
{% block scripts %}
{{ block.super}}
<script type="text/javascript" src="{% static 'xxxxxxx.js' %}"></script>
{% endblock %}
- 在子模板引用自己的JS文件时,使用script,避免和父模板的scripts重复(styles和style都是一样的道理哦)
{% block script %}
<script type="text/javascript" src="{% static 'xxxxxxx.js' %}"></script>
{% endblock %}