< DOCTYPE html PUBLIC -WCDTD XHTML TransitionalEN httpwwwworgTRxhtmlDTDxhtml-transitionaldtd>
轉自:http://blog.breakn.net/article.asp?id=266
目前為部分通路量大的頁面自動生成HTML的方式,不過一些很多頁面都要用到的菜單什麼的如果要改就要改好幾個頁面很是郁悶。之前老早就知道SSI技術,不過隻是知道有這個東東,怎麼去用不太知道,隻知道可以使用# include ~~~浪費啊~~~~
1)、為什麼要用shtml
按照官方的解釋,shtml屬于靜态網頁範疇,是以shtml比asp執行的速度快。也正因為如此,在伺服器asp死鎖時可以照常運轉。
它可以包含檔案,比如直接include進來一個檔案,這個大家都知道了,這也是為什麼這麼多人用shtml的主要原因:具有靜态網頁的特性,又有最重要的“包含”功能。
通過#echo可以獲得Request.ServerVariables Collection。這個功能可以省卻一部分javascript的程式設計量。
通過#flastmod/#fsize可以即時顯示某一個檔案的最後修改時間和大小。不用fso就能實作。一些需要經常定時更新的葉面可以使用。
#exec用來執行一些程式調用。這玩意比較危險,可以通過修改系統資料庫禁止。
2)、伺服器設定
這裡以win2003為例,如下圖設定就好
<a target="_blank" href="http://s12.sinaimg.cn/middle/7d3ab8a94cd05204e67db&690"> </a>
3)、伺服器端包括(SSI)的指令文法(shtml)
SSI:Server Side Includes
大多數 SSI 檔案是常用與 IIS 以允許内容創作者包括的其他檔案, 内一個檔案允許輕松建立的腳本庫或頁面頁眉和頁腳内容。
SSI 檔案, 像 Active Server Pages (ASP) 和 Internet 資料連接配接器 (IDC) 檔案, 是通過檔案擴充到預處理器動态連結庫 (DLL) 腳本映射。 萬一有 SSI, 處理程式是 Ssiinc.dll。 盡管也支援擴充的 .shtm 和 .shtml SSI 檔案通常名稱與 .stm 檔案擴充名, 為。
通過使用特殊的預處理指令的 SSI 是使用 SSI 文檔中。 這些指令由 SSI DLL 分析和處理。 所有指令都包含在 HTML 注釋标記并且采取以下一般形式:
<!--#<DIRECTIVE> [<ADDITIONAL DATA>]-->
IIS 實作的 SSI 中支援下列指令:
? #config - 配置如何顯示變量和指令。
? 一般文法對于 #config 指令是如下:<!-- #CONFIG <ERRMSG/TIMEFMT/SIZEFMT>="<format>" -->
以下是使用 #config 指令簡單網頁的示例:<html>
<body>
<!-- #CONFIG TIMEFMT="%m/%d/%y" -->
<p>Today's Date = <!--#ECHO VAR = "DATE_LOCAL" --></p>
<!-- #CONFIG TIMEFMT="%A, %B %d, %Y" -->
</body>
</html>
#echo - 将各種通用網關接口 (CGI) 系統環境變量的值。? 一般文法對于 #echo 指令是如下:<!--#ECHO VAR = "<CGI_VARIABLE_NAME>"-->以下是使用 #echo 指令簡單網頁的示例:<html>
<p>Server Name = <!--#ECHO VAR = "SERVER_NAME"--></p>
<p>Date = <!--#ECHO VAR = "DATE_LOCAL" --></p>
<p>Page URL = <!--#ECHO VAR = "URL" --></p>
以下是使用 #exec 指令簡單網頁的示例:<html>
<p>Root Directory of C:</p>
<pre><!--#EXEC CMD="cmd /c dir c:\ /b"--></pre>
#flastmod - 檢索指定檔案的上次修改時間。? 一般文法對于 #flastmod 指令是如下:<!--#FLASTMOD <FILE/VIRTUAL> = "filename.ext"-->
以下是使用 #flastmod 和 #config 指令簡單網頁的示例:<html>
<p>Modified Date = <!--#FLASTMOD FILE="filename.ext"--></p>
<!-- #CONFIG TIMEFMT="%B %d, %Y" -->
#fsize - 檢索指定檔案的大小。
一般文法對于 #fsize 指令是如下:<!--#FSIZE <FILE/VIRTUAL> = "filename.ext"-->
以下是使用 #fsize 和 #config 指令簡單網頁的示例:<html>
<!-- #CONFIG SIZEFMT="BYTES" -->
<p>File Size = <!--#FSIZE FILE="filename.ext"--> bytes</p>
<!-- #CONFIG SIZEFMT="ABBREV" -->
<p>File Size = <!--#FSIZE FILE="filename.ext"--> KB</p>
# include - 包括内部另一個指定檔案的内容。
# include 指令一般文法将如下所示:<!--#INCLUDE <FILE/VIRTUAL> = "filename.ext"-->
以下是使用 # include 指令簡單網頁的示例:<html>
<!--#INCLUDE FILE = "header.inc"-->
<p>Hello World!</p>
<!--#INCLUDE VIRTUAL = "/includes/footer.inc"-->
有關檔案和虛拟文法詳細資訊通過使用檔案或虛拟路徑 SSI 指令使用檔案路徑可引用檔案。 ? 檔案元素用于是相對于目前文檔的檔案夾的檔案。 以下示例在目前檔案夾中包括一個檔案:<!--#include file="myfile.txt"-->
虛拟元素表示路徑是相對于基本的 Web 伺服器檔案夾。 以下示例包括檔案: /scripts 虛拟檔案夾中<!--#include virtual="/scripts/myfile.txt"-->
Server Side Includes
The WebCom WWW Server allows you to create documents which include other documents and various dynamically generated information, such as the current date, the file's last modification date, and the size or last modification of other files. Note: The "exec" command is not available, due to security considerations.
Special File Extension Necessary
Files utilizing includes must end in ".shtml". If they do not, the includes will be ignored.引用 參考其他有關使用 SSI IIS, 請單擊下列文章編号以檢視 Microsoft 知識庫文章:
<a href="http://www.cnblogs.com/tag/html%26%2347%3Bxhtml%26%2347%3Bxml%E4%B8%93%E6%A0%8F/feeds">#html/xhtml/xml專欄</a>
<b>本文轉自 netcorner 部落格園部落格,原文連結: </b><b>http://www.cnblogs.com/netcorner/archive/2009/01/13/2912079.html</b><b> ,如需轉載請自行聯系原作者 </b>