2015-06-30 119 views
-2

我的目標:包括一個html文件(我的網站的標題)到許多其他html文件(我的網站的每個頁面)。jquery .load()包含一個HTML文件到另一個不工作

我不想將我的標題html複製並粘貼到我的每個網站頁面中。當我想更改我的標題html時,我不想通過每個網頁並更改所有標題。

我目前的(不工作的)解決方案: 使用jquery的.load()函數將我的頁眉html加載到div中。我的代碼:

了header.html:

<h1>I am a header</h1> 

的index.html:

<html> 
    <head> 
     <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script> 
     <script> 
      $(function(){ 
       $("#header").load("header.html"); 
      }); 
     </script> 
    </head> 
    <body> 
     <div id="header"></div> 
    </body> 
</html> 

這是非常相似,所以像this one,但我的代碼,仍然不能正常工作的問題。這是否與django的模板引擎呈現這一事實有關? header.html與index.html位於同一目錄中

+0

在瀏覽器開發工具中檢查實際的請求本身。好奇你爲什麼不只是做一個服務器端包括?? – charlietfl

+4

爲什麼你想用jQuery做到這一點?這有各種各樣的問題 - 負載,JS可用性,可訪問性。但是,Django的模板系統被明確地*製作成通過塊和繼承來實現這一點。這是做到這一點的方法。 –

+0

blex:是的。丹尼爾:你能否提出另一種方法來實現我的目標而不是jQuery? googling「將html包含到另一個html文件中」主要給出我jquery的答案 – David

回答

3

我擴展了Daniel已經說過的話。

先閱讀django documentation

說你有base.html您儲存應該出現在所有頁面的頁眉部分,和你有detail.html這需要處理其他一些地區

所以,base.html

<!doctype html> 
<html lang="en"> 
    <head> 
     stuff that appears in all pages 
    </head> 
    <body> 
     {% block body %}{% endblock %} 
    </body> 
</html> 

和你detail.html會是什麼樣子:

{% extends 'base.html' %} 
{% block body %} 
    stuff that shows up only in detail.html 
{% endblock %} 

多數民衆贊成它,你的detail.html將擁有一切base.html加上你寫入body塊的東西。

希望,這有助於

0

您的代碼應該可以正常工作,但如果它在Chrome中,它可能會遇到文件訪問問題。

您可以嘗試使用Firefox,或者堅持使用Chrome瀏覽器,但使用參數打開它--args --allow-file-access-from-files。

如果這仍然不起作用,請在控制檯輸出上添加附加內容,以便更容易診斷。

相關問題