在Django中使用扩展模板中的静态文件

时间:2015-12-29 15:14:11

标签: python django django-1.8

我有基本模板“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%},这会有效,同时给出错误 - 无效的块标记:没有它的'静态'。 我想知道的是有一种方法可以在不使用{%load staticfiles%}的情况下包含静态文件“index.js”,因为这会再次加载静态文件。

1 个答案:

答案 0 :(得分:6)

{% load staticfiles %}仅加载模板标记库staticfiles的代码。它没有将所有静态文件加载到django模板中。模板标记staticstaticfiles模板标记库的一部分,因此django模板需要知道static的代码来自何处。

您可以在任何模板标记上调用load,甚至是自定义标记。它就像python中的伪代码from staticfiles import static

请查看django doc了解详情。