2011-08-24 217 views
0

我有兩個HTML頁面。 我想避免重複的標記,像頭,導航等 例如,這裏是一個頁面:避免重複的HTML

<head><title>Los Pollos Hermanos</title></head> 
<body>About Us</body> 

這裏是另一個:

<head><title>Los Pollos Hermanos</title></head> 
<body>Contacts</body> 

我不喜歡重複一些事情,所以,我想把head + title部分移出一些單獨的文件,然後從其他頁面調用這個單獨的文件。這是正確的方法嗎?這種做法是什麼?

+1

你只是建立一個靜態的網站,或者是有您使用的是特定的引擎? – CtrlDot

回答

1

這取決於你所使用的語言。如果您想嚴格使用HTML,請查看您的服務器是否支持shtml。如果是這樣,您可以使用includes將文件讀入另一個文件。

<!--#include FILE="filename.html"--> 
+0

SSI不是HTML。 – Quentin

+0

我說錯了。我瞭解它不是HTML,但如果服務器設置爲支持它,這是最容易添加的,不需要處理PHP,ASP等語言。 – fanfavorite

2

使用模板語言。您選擇的具體一個將取決於您的服務器支持和您的個人偏好。

所有其他條件相同,我會用Template Toolkit,因爲它可以通過自身在構建時使用(即上傳前,並無需爲服務器支持任何超出靜態文件)由於ttree並能在Perl上使用運行時

有使用TT生成網頁內容的好introductory tutorial

1

你不能直接從HTML,但如果你使用PHP或ASP或類似的東西,以生成HTML是很簡單的。檢查include如果PHP,例如

0

一個經典的方法是有一個包含頁腳和頁眉的佈局。然後你用這樣的佈局裝飾你的頁面:

_________layout________ 
| ________________ | 
| | header  | | 
| |_______________| | 
| _________________ | 
| |    | | 
| | specific  | | 
| | page  | | 
| |    | | 
| |_______________| | 
| ________________ | 
| | footer  | | 
| |_______________| | 
|_____________________| 

這是大多數web框架所做的。

0

在ASP.Net中,您可以使用所謂的主頁面。在ASP.Net MVC中,使用佈局頁面的類似概念。您可以在主內容中定義所有這些內容,並設置一個標籤,顯示「更改」內容顯示的位置。然後其他文件(頁面)定義模板中這些定義點中顯示的內容。

1

您可以將常用的代碼放在一個.tpl文件,並在頁面中包含該鏈接。例如

<!--#include virtual="../_tpl/header.tpl" --> 
<div class="content"> 

    some code goes here... 

</div> 

和標題模板你把你所有的通用代碼像

<head> 
    <meta http-equiv="content-type" content="text/html; charset=utf-8" /> 
    <title>PAGETITLE</title> 
    <meta name="Keywords" content="" /> 
    <meta name="Description" content="" /> 
    <meta http-equiv="Content-Style-Type" content="text/css" /> 
    <meta http-equiv="Content-Script-Type" content="text/javascript" /> 


    <link rel="stylesheet" type="text/css" media="all" href="..." /> 

    <script type="text/javascript" src="....."></script> 

</head>