2016-01-04 74 views
1

我目前正在使用一个Django项目,我包括不同的库JS和我创建JS文件来管理其他库,但我不知道每个HTML页面的JS文件的正确组织,例如,我有一个“Main.js”和“Milk.js”在基本模板中,但我不希望两个文件都在同一个基本模板中,我想为每个页面单独提供文件..如何在Django中组织JS文件?

我尝试添加一个正常的js文件

<script src="{{ STATIC_URL }}js/milk.js"></script> 

但它给我一个错误消息,问我几个依赖从base.html文件继承时

我希望你的帮助

编辑:

宽多他añadido连接错误archivos德plantillas,罪mostrarme误差en拉consola DE CROMO佩罗EN LA consola Django的mostrarme洛杉矶archivos JS去carga CON 304错误。 enter image description here

类库在base.html文件

真奇怪,我可以加载milk.js当我从home.html的点击,但是当我将在其他页面点击例如,从“cow.html”“ Milk.html“即使当我和”milk.html“一样时也没有加载js文件。在不同的模板文件

{% block scripts %} 

<!-- some default content here --> 

{% endblock %} 

现在:

+0

你可能会显示错误的详细信息? –

+0

@mhassan我使用JQuery JS,但我在base.html中包含JQuery文件,错误是缺少JQuery文件。 – carson314

+0

您是否在每个模板中包含您的基本模板? –

回答

4

Django模板引擎具有alr eady提供了一个标记,用于继承名为'extend'的HTML结构。

标签“扩展”是使用扩展一个父模板。

{%extends“base.html”%}使用字面值“base.html”作为要扩展的父模板的名称。

base.html是可以扩展的父模板。

{% load staticfiles %} 
<html lang="en"> 
    <head><title>Hello World</title></head> 
    <body> 
     <div id="content"> 
      {% block content %}{% endblock %} 
     </div> 

     {% block scripts %} 
     <script src="{% static 'js/main.js' %}"></script> 
     {% endblock %} 

    </body> 
</html> 

,你有另一个HTML叫milk.html,你需要的一切一样的base.html文件,但包括milk.js你只是做这样的事情。

{% load staticfiles %} 
{% extends "base.html" %} 

{% block scripts %} 
    <!-- block.super will get the content of the block from the parent template --> 
    {{ block.super }} 
    <script src="{% static 'js/milk.js' %}"></script> 
{% endblock %} 

了解更多关于 '扩展':https://docs.djangoproject.com/en/1.9/ref/templates/builtins/#std:templatetag-extends

+0

我也建议使用{%load staticfiles%}和{%static'main.js'%},而不是{{STATIC_URL}}变量。 – aquartier

+0

我有一个简单的疑问,需要在{%block content%}中添加? – carson314

+0

@ user1825955不需要。 – aquartier

1

在你base.html文件,添加一个块head标签内像这样与牛奶模板

{% block scripts %} 

<!-- insert per template scripts here --> 

{% endblock %} 

所以,这将是如:

{% block scripts %} 

<script src="{{ STATIC_URL }}js/milk.js"></script> 

{% endblock %}