在**構建過中。當我們遇到很多的內容為靜態頁面,而頁首與頁尾又經常要更換時,如果一直使用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網盤 雲諾 堅果鋪子等,並且功能很強大,大部分提供的客戶端都有自動版本管理和加密傳輸的功能。這為我們管理我們的資源提供了便利條件,一般的資源直接使用網盤已經做夠了。但是我們有這樣的情況,你在家裡突然有乙個 的想法需要實現,但是你無法...