我正在使用Django开发一个网站。我正在使用模板继承为了避免在多个HTML子文件中重复代码(例如导航条)。我不想重写的部分代码是我嵌入JavaScript的地方:
<script src="whatever"></script>
众所周知,这段代码最好放在.html文件正文的末尾,因为这样可以避免锁定额外的资源,使其无法更快地下载。
所以我的问题是:我该如何告诉我的base.html模板,脚本代码应该是在主体的末尾在每个子HTML文件中?
Base.html:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{% block title %}{% endblock %}</title>
</head>
<body>
{% block main_body_data %}
{% endblock %}
{% block child_js_above_files %}
{% endblock %}
<script src="whatever"></script>
{% block child_js_below_files %}
{% endblock %}
</body>
</html>
child.html:
<!DOCTYPE html>
{% extends "base.html" %}
{% block title %}
Home page
{% endblock %}
{% block main_body_data %}
<h1>main content</h1>
{% endblock %}
{% block child_js_above_files %}
<script src="whateverabove"></script>
{% endblock %}
{% block child_js_below_files %}
<script src="whateverbelow"></script>
{% endblock %}
您可以简单地为基本模板创建一个base.html
文件。它应该是这样的
base.html
<!Doctype HTML>
...
<head>
...
{% block head %}
{% endblock head %}
</head>
<body>
{% block content %}
{% endblock content %}
<!-- page specific script tag here -->
{% block script %}
{% endblock script %}
<!-- common script tag for whole site (will be loaded at last) -->
<script src="whatever"></script>
...
</body>
</html>
在base.html的末尾创建一个block
{% block js_files %} {% endblock %}
,然后在需要的时候覆盖它。