用shtml來include網頁檔案

2022-05-07 15:09:07 字數 2834 閱讀 8972

在**構建過中。當我們遇到很多的內容為靜態頁面,而頁首與頁尾又經常要更換時,如果一直使用html檔案總會有很多的麻煩。因為批量修改起來很不方面,所以我們總希望能將頁尾與頁尾include到html檔案中來。html屬於客戶端解析形的格式化語言,自4.0後幾乎很難再有大的變動(畢竟很多瀏覽器只按4.0標準來解析),所以至今也沒include這樣的概念。而html的框架(frame與iframe)雖然可以用來包含首頁與頁尾檔案,但使用frame與iframe的概念與動態頁面(asp,jsp,php等)的include那樣不同,frame與iframe的主體頁面與被包括的頁的不是乙個頁面,而通過include的方式呼叫的頁面主體頁面與被包括的頁面仍然是乙個頁面,這樣頁面再載入的時就沒速度的影響,更不會有多個視窗這樣的問題。當然frame與iframe的作用還是挺大的,只是這與include這樣包括頁面進來的概念不同。

那什麼是shtml呢?

使用ssi(server side include)的html副檔名,ssi(server side include),通常稱為"伺服器端嵌入"或者叫"伺服器端包含",是一種類似於asp的基於伺服器的網頁製作技術。預設副檔名是 .stm、.shtm 和 .shtml。

什麼是ssi?

ssi是英文server side includes的縮寫,翻譯成中文就是伺服器端包含的意思。從技術角度上說,ssi就是在html檔案中,可以通過注釋行呼叫的命令或指標。ssi具有 強大的功能,只要使用一條簡單的ssi命令就可以實現整個**的內容更新,時間和日期的動態顯示,以及執行shell和cgi指令碼程式等複雜的功能。 **維護常常碰到的乙個問題是,**的結構已經固定,卻為了更新一點內容而不得不重做一大批網頁。ssi提供了一種簡單、有效的方法來解決這一問題,它將 乙個**的基本結構放在幾個簡單的html檔案中(模板),以後我們要做的只是將文字傳到伺服器,讓程式按照模板自動生成網頁,從而使管理大型**變得容易。

如何使你的apache伺服器支援ssi?

apache(如何在windows以及linuc下安裝apache請參見另兩篇文章)預設是不支援ssi的,需要我們更改httpd.conf來進行配置。我這裡以windows平台的apache 2.0.x為例(在linux平台下與之相同),開啟conf目錄下的httpd.conf檔案,搜尋「addtype text/html .shtml」,找到:

以下是引用片段:

# addtype text/html .shtml

# addoutputfilter includes .shtml

把這兩行前面的#去掉 。

然後搜尋「options indexes followsymlinks」

在搜尋到的那一行後面新增「 includes」

即將該行改變為 options indexes followsymlinks includes

熟悉apache manual的可能會覺得比較容易。

儲存httpd.conf,重起apache即可

到此我們就完成了對apache ssi的設定。

如何讓你的iis伺服器支援ssi

windows 2000:

iis裡新增乙個應用程式副檔名對映

可執行檔案:c:windowssystem32inetsrvssinc.dll

副檔名:shtml/shtm

windows 2003 2003預設已經支援ssi(shtml檔案),只需在iis的"web服務擴充套件"裡設定"在伺服器端的包含檔案"為"允許" 即可iis6.0對於ssi進行了一些改進,以前iis5.0的一些程式遷移過後可能無法運用。

乙個經常的出現問題是出現如下錯誤:

"處理 ssi 檔案時出錯 - error processing ssi file"

經過測試,以下做法會導致這個錯誤:

1、伺服器物理路徑使用中文名。

2、包含檔案中使用中文名。

3、包含檔案不存在。

4、被包含的檔案再次包含使用中文名的檔案。

該錯誤在unicode編碼時依舊,屬於iis的問題。

shtml檔案測試?

主體檔案,比如命名為test.shtml,內容為(把head.html與foot.html檔案包進來,與asp,jsp,php中的include相同)

以下是引用片段:

你好,這是中間的內容

頁首檔案,比如命名為head.html,內容為

以下是引用片段:

我是頁首導航欄的公共資訊

頁尾檔案,比如命名為foot.html,內容為

以下是引用片段:

我是頁尾版權資訊

然後執行web server,在位址列中開啟test.shtml檔案,就會得到乙個完整的頁面,包括頭與尾檔案。

shtml中簡單的ssi命令

ssi具有強大的功能,只要使用一條簡單的ssi命令就可以實現整個**的內容更新,時間和日期的動態顯示,以及執行shell和cgi指令碼程式等複雜的功能。比如我們修改上面提及的test.shtml檔案,加入以下**,將會顯示伺服器日期以及客戶端ip等:

以下是引用片段:

本文件名稱:

時區:你的ip位址是:

今天是:

ssi指令基本格式

程式**:

以下是引用片段:

說明:1.是html語法中表示注釋,當web伺服器不支援ssi時,會忽略這些資訊。

2.#include 為ssi指令之一。

3.file 為include的引數, info.htm為引數值,在本指令中指將要包含的文件名。

注意:1.2.上面的標點="",乙個也不能少。

3.ssi指令是大小寫敏感的,因此引數必須是小寫才會起作用。詳細可以檢視shtml詳細教程 ,通過shtml可以減輕許多任務作負擔哦。另外:shtml檔案在網頁伺服器下執行才有效,直接用ie開啟將被當作是文字檔案。

開啟SSI使Apache支援shtml網頁檔案

要實現apache支援shtml偽靜態則需要開啟ssi並可支援用shtml來include網頁檔案 1 開conf目錄下的httpd.conf檔案,搜尋 addtype text html shtml 找到 addtype text html shtml addoutputfilter includ...

用網盤和git來管理資源

現在的網盤很多,比如dropbox 快盤 skydriver 115網盤 雲諾 堅果鋪子等,並且功能很強大,大部分提供的客戶端都有自動版本管理和加密傳輸的功能。這為我們管理我們的資源提供了便利條件,一般的資源直接使用網盤已經做夠了。但是我們有這樣的情況,你在家裡突然有乙個 的想法需要實現,但是你無法...

用網盤和git來管理資源

現在的網盤很多,比如dropbox 快盤 skydriver 115網盤 雲諾 堅果鋪子等,並且功能很強大,大部分提供的客戶端都有自動版本管理和加密傳輸的功能。這為我們管理我們的資源提供了便利條件,一般的資源直接使用網盤已經做夠了。但是我們有這樣的情況,你在家裡突然有乙個 的想法需要實現,但是你無法...