2016-01-04 115 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 %}