2014-10-16 30 views
1

我嘗試在Django模板的head標籤中包含Javascript和CSS的外部文件,它們不起作用。當我在關閉車身標籤之前放置它們時,它們運作良好。爲什麼?另一個問題是,當我使用繼承時,孩子看不到我的外部文件。有人可以幫我嗎?使用Django模板引用外部文件

<head> 
{% load staticfiles %} 
    <link rel = "stylesheet" type = "text/css" href = "{%static 'postare/style.css' %}"/> 
    <link type = "text/css" href = "{% static 'postare/css/bootstrap.min.css'%}" rel = "stylesheet"/> 

    <script type = "text/javascript" src = "{% static 'postare/js/bootstrap.min.js' %}"></script> 
    <script type = "text/javascript" src = "{% static 'postare/jquery.js' %}"></script> 
    <script type = "text/javascript" src = "{% static 'postare/scripts.js' %}"></script> 
</head> 
+0

對不起,你是說這個確切的代碼在工作,但不是在?當你把它放入時,究竟會發生什麼?該代碼在哪個文件中?該繼承層次結構中的文件在哪裏? – 2014-10-16 12:28:34

+0

是的。腳本具有隱藏類的功能。當我將該類與該文件在body中一起工作時,它會起作用,但是,當我將文件移動到頭部時,它不起作用。我嘗試將該類分配給頭部和正文中具有文件的子部分,它也沒用。 – 2014-10-16 12:58:35

+0

腳本文件名爲scripts.js,位於app/static/app/scripts.js中 – 2014-10-16 13:04:40

回答

0

我在<html>標籤之前加載了靜態標籤。而我用{% load static %}而不是{% load staticfiles %} 而且它對我沒有任何麻煩。

+0

對不起,我試過了,它仍然不起作用。 – 2014-10-16 13:02:45

0

這與Django模板或外部文件無關。

HTML頁面不是魔術;瀏覽器只是按順序解釋它們。如果腳本包含在文檔的頂部,則不能立即處理DOM中的元素,因爲DOM尚未加載。這就是爲什麼jQuery包含延緩執行,直到DOM準備就緒的方法:

$(document).ready(function() { 
    ... code here ... 
}); 

jQuery documentation

+0

這也行不通。 – 2014-10-16 16:36:11

0

移動此行模板的頂部:

{% load staticfiles %} 

之前<html><head>標籤。

+0

不,對不起,它不起作用,試了一下。它隱藏我的div,如果我在CSS中說:「visibility:hidden;」但如果我嘗試添加相同的CSS屬性與JQuery它不起作用。 – 2014-10-19 10:37:43