在 Django 的扩展模板中使用静态文件
Using static file in extended template in Django
我有基本模板 "header.html",我正在尝试使用 django 的 extend 标签扩展它以获取一些新数据。
header.html
<!DOCTYPE html>
{% load staticfiles %}
<link href='https://fonts.googleapis.com/css?family=Roboto:400,500' rel='stylesheet' type='text/css'>
<link rel="stylesheet" type="text/css" href="{% static 'style.css' %}"/>
<link rel="stylesheet" type="text/css" href="{% static 'font-awesome.min.css.css' %}"/>
<link rel="stylesheet" type="text/css" href="{% static 'bootstrap.min.css' %}"/>
<link rel="stylesheet" type="text/css" href="{% static 'jquery-ui.css' %}"/>
<link rel="stylesheet" type="text/css" href="{% static 'css/buttons.css' %}"/>
<link rel="stylesheet" type="text/css" href="{% static 'css/jquery.switchButton.css' %}"/>
<script src="{% static 'jquery-1.11.3.min.js' %}"></script>
<script src="{% static 'jquery-ui.js.js' %}"></script>
<script src="{% static 'jquery.dataTables.min.js' %}"></script>
<script src="{% static 'dataTables.bootstrap.min.js' %}"></script>
<script src="{% static 'common.js' %}"></script>
<html lang="en">
<head>
<div id="header">
<div id='topMenuDiv'>
<a href='/search' class='fa '>BROWSE MOVIES</a>
</div>
</div>
</head>
<body>
{% block content %}
{% endblock %}
</body>
</html>
我有home.html
{% extends "header.html" %}
{% block content %}
<script src="{% static 'index.js' %}"></script>
{% endblock %}
现在,如果我在 home.html 中包含 {% load staticfiles %},这将起作用,同时给出错误 - 无效的块标记:'static' 没有它。
我想知道有没有一种方法可以在不使用 {% load staticfiles %} 的情况下包含静态文件 "index.js",因为这会再次加载静态文件。
{% load staticfiles %}
只是加载模板标签库 staticfiles
的代码。它不会将所有静态文件加载到 django 模板中。模板标签 static
是 staticfiles
模板标签库的一部分,所以 django 模板需要知道 static
的代码来自哪里。
您可以在任何模板标签上调用 load
,甚至是您的自定义标签。就像python.
中的伪代码from staticfiles import static
详情请看django doc。
我有基本模板 "header.html",我正在尝试使用 django 的 extend 标签扩展它以获取一些新数据。
header.html
<!DOCTYPE html>
{% load staticfiles %}
<link href='https://fonts.googleapis.com/css?family=Roboto:400,500' rel='stylesheet' type='text/css'>
<link rel="stylesheet" type="text/css" href="{% static 'style.css' %}"/>
<link rel="stylesheet" type="text/css" href="{% static 'font-awesome.min.css.css' %}"/>
<link rel="stylesheet" type="text/css" href="{% static 'bootstrap.min.css' %}"/>
<link rel="stylesheet" type="text/css" href="{% static 'jquery-ui.css' %}"/>
<link rel="stylesheet" type="text/css" href="{% static 'css/buttons.css' %}"/>
<link rel="stylesheet" type="text/css" href="{% static 'css/jquery.switchButton.css' %}"/>
<script src="{% static 'jquery-1.11.3.min.js' %}"></script>
<script src="{% static 'jquery-ui.js.js' %}"></script>
<script src="{% static 'jquery.dataTables.min.js' %}"></script>
<script src="{% static 'dataTables.bootstrap.min.js' %}"></script>
<script src="{% static 'common.js' %}"></script>
<html lang="en">
<head>
<div id="header">
<div id='topMenuDiv'>
<a href='/search' class='fa '>BROWSE MOVIES</a>
</div>
</div>
</head>
<body>
{% block content %}
{% endblock %}
</body>
</html>
我有home.html
{% extends "header.html" %}
{% block content %}
<script src="{% static 'index.js' %}"></script>
{% endblock %}
现在,如果我在 home.html 中包含 {% load staticfiles %},这将起作用,同时给出错误 - 无效的块标记:'static' 没有它。 我想知道有没有一种方法可以在不使用 {% load staticfiles %} 的情况下包含静态文件 "index.js",因为这会再次加载静态文件。
{% load staticfiles %}
只是加载模板标签库 staticfiles
的代码。它不会将所有静态文件加载到 django 模板中。模板标签 static
是 staticfiles
模板标签库的一部分,所以 django 模板需要知道 static
的代码来自哪里。
您可以在任何模板标签上调用 load
,甚至是您的自定义标签。就像python.
from staticfiles import static
详情请看django doc。