将javascript库导入为模板中的变量

时间:2015-07-11 10:24:13

标签: django

我有一个django页面,我在多个页面上添加了各种js依赖项。例如,在第1页和第2页,我有要排序的表。所以我在两个页面中都包含以下代码。

<link rel="stylesheet" type="text/css" href="{% static 'css/bootstrap-sortable.css' %}">
<script type="text/javascript" src="{% static 'js/bootstrap-sortable.js' %}"></script>

让我们说,在第3页和第4页,我有nvd3图表。所以我包括以下代码:

<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/d3/3.5.6/d3.min.js" charset="utf-8"></script>
<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/nvd3/1.7.0/nv.d3.js"></script>
<link href="{% static 'js/nvd3-master/build/nv.d3.css' %}" rel="stylesheet">
<link rel="stylesheet" type="text/css" href="{% static 'css/bootstrap-sortable.css' %}">

如果我需要编辑这些依赖项的src url,我必须单独编辑包含它们的所有页面 我想在js和css静态文件上定义变量,所以我不需要多次编辑它们,只需要编辑一次。
像这样:

bootstrap_sortable_css = """<link rel="stylesheet" type="text/css" href="{% static 'css/bootstrap-sortable.css' %}">"""
bootstrap_sortable_js = """<script type="text/javascript" src="{% static 'js/bootstrap-sortable.js' %}"></script>"""

然后将其打印在我的模板中:

<html>
<head>
    {{bootstrap_sortable_css}}
</head>
<body>
 content
    {{bootstrap_sortable_js}}
</body>
</html>

我确实错过了这个标准吗?

1 个答案:

答案 0 :(得分:0)

您可能想要使用block。块用于模板继承。因此,您可以拥有1个根模板文件,然后您的所有页面都需要继承根模板。

您可以像这样定义A css和js块。

<html>
<head>
    {% block css %}

    {% endblock css %}
</head>
<body>
    content
    {% block js %}

    {% endblock js %}
</body>
</html>

然后,您可以根据页面需要覆盖页面模板上的块。