用shtml來include網(wǎng)頁文件

本文轉(zhuǎn)自?http://blog.csdn.net/xtra6714/article/details/7097634

在網(wǎng)站構(gòu)建過中。當(dāng)我們遇到很多的內(nèi)容為靜態(tài)頁面滤愕,而頁首與頁腳又經(jīng)常要更換時,如果一直使用html文件總會有很多的麻煩怜校。因為批量修改起來很不方面间影,所以我們總希望能將頁腳與頁尾include到html文件中來。html屬于客戶端解析形的格式化語言茄茁,自4.0后幾乎很難再有大的變動(畢竟很多瀏覽器只按4.0標(biāo)準(zhǔn)來解析)魂贬,所以至今也沒include這樣的概念。而html的框架(frame與iframe)雖然可以用來包含首頁與頁腳文件裙顽,但使用frame與iframe的概念與動態(tài)頁面(asp,jsp,php等)的include那樣不同付燥,frame與iframe的主體頁面與被包括的頁的不是一個頁面,而通過include的方式調(diào)用的頁面主體頁面與被包括的頁面仍然是一個頁面愈犹,這樣頁面再加載的時就沒速度的影響键科,更不會有多個窗口這樣的問題。當(dāng)然frame與iframe的作用還是挺大的甘萧,只是這與include這樣包括頁面進(jìn)來的概念不同萝嘁。

  除frame與iframe之外,常用的調(diào)用文件的方法還有采用js扬卷。這與include概念倒是很接近牙言,但可以需要客戶端js的支持,而且修改也不很方面怪得,因為被包括的js是通過document.write來輸出html代碼咱枉,這樣雖然能達(dá)到效果,可js畢竟執(zhí)行客戶端動態(tài)效果更好徒恋,比如現(xiàn)在較流行的AJAX蚕断。所以無論是frame/iframe還是js都與include不太一樣(倒是Dreamweaver中的library與include很像,可惜只能用在Dreamweaver中)入挣,而我們有時頁面有很多靜態(tài)頁面亿乳,內(nèi)容不是動態(tài)的且沒有規(guī)律可循,更不好做到數(shù)據(jù)庫里去。如新浪的新聞之類的葛假,這時我們可以采用shtml的方式來做這些頁面障陶。--JarryLi in BeiJing

  那什么是shtml呢?

  使用SSI(Server Side Include)的html文件擴(kuò)展名,SSI(Server Side Include)聊训,通常稱為"服務(wù)器端嵌入"或者叫"服務(wù)器端包含"抱究,是一種類似于ASP的基于服務(wù)器的網(wǎng)頁制作技術(shù)。默認(rèn)擴(kuò)展名是 .stm带斑、.shtm 和 .shtml鼓寺。

  什么是SSI?

  SSI是英文Server Side Includes的縮寫,翻譯成中文就是服務(wù)器端包含的意思勋磕。從技術(shù)角度上說妈候,SSI就是在HTML文件中,可以通過注釋行調(diào)用的命令或指針朋凉。SSI具有 強(qiáng)大的功能州丹,只要使用一條簡單的SSI命令就可以實現(xiàn)整個網(wǎng)站的內(nèi)容更新,時間和日期的動態(tài)顯示杂彭,以及執(zhí)行shell和CGI腳本程序等復(fù)雜的功能墓毒。 網(wǎng)站維護(hù)常常碰到的一個問題是,網(wǎng)站的結(jié)構(gòu)已經(jīng)固定亲怠,卻為了更新一點內(nèi)容而不得不重做一大批網(wǎng)頁所计。SSI提供了一種簡單、有效的方法來解決這一問題团秽,它將 一個網(wǎng)站的基本結(jié)構(gòu)放在幾個簡單的HTML文件中(模板)主胧,以后我們要做的只是將文本傳到服務(wù)器,讓程序按照模板自動生成網(wǎng)頁习勤,從而使管理大型網(wǎng)站變得容易踪栋。

  如何使你的Apache服務(wù)器支持SSI?

  Apache(如何在windows以及l(fā)inuc下安裝apache請參見另兩篇文章)默認(rèn)是不支持SSI的,需要我們更改httpd.conf來進(jìn)行配置图毕。我這里以windows平臺的Apache 2.0.x為例(在linux平臺下與之相同)夷都,打開conf目錄下的httpd.conf文件,搜索“AddType text/html .shtml”予颤,找到:

  以下是引用片段:

# AddType text/html .shtml?

# AddOutputFilter INCLUDES .shtml

  把這兩行前面的#去掉 囤官。

  然后搜索“Options Indexes FollowSymLinks”

  在搜索到的那一行后面添加“ Includes”

  即將該行改變?yōu)?Options Indexes FollowSymLinks Includes

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

  保存httpd.conf蛤虐,重起apache即可

  到此我們就完成了對Apache SSI的設(shè)置党饮。

  如何讓你的IIS服務(wù)器支持SSI

  windows 2000:

  IIS里添加一個應(yīng)用程序擴(kuò)展名映射

  可執(zhí)行文件:C:\WINDOWS\system32\inetsrv\ssinc.dll

  擴(kuò)展名:shtml/shtm

  windows 2003 2003默認(rèn)已經(jīng)支持SSI(shtml文件),只需在IIS的"Web服務(wù)擴(kuò)展"里設(shè)置"在服務(wù)器端的包含文件"為"允許" 即可IIS6.0對于SSI進(jìn)行了一些改進(jìn),以前IIS5.0的一些程序遷移過后可能無法運用驳庭。

  一個經(jīng)常的出現(xiàn)問題是出現(xiàn)如下錯誤:

  "處理 SSI 文件時出錯 - Error processing SSI file"

  經(jīng)過測試刑顺,以下做法會導(dǎo)致這個錯誤:

  1、服務(wù)器物理路徑使用中文名。

  2捏检、包含文件中使用中文名荞驴。

  3、包含文件不存在贯城。

  4、被包含的文件再次包含使用中文名的文件霹娄。

  該錯誤在Unicode編碼時依舊能犯,屬于IIS的問題。

  解決方法:對于使用SSI的站點物理和URL地址都全部使用英文犬耻。

  shtml文件測試?

  主體文件踩晶,比如命名為test.shtml,內(nèi)容為(把head.html與foot.html文件包進(jìn)來枕磁,與asp,jsp,php中的include相同)

  以下是引用片段:


你好渡蜻,這是中間的內(nèi)容

  頁首文件,比如命名為head.html,內(nèi)容為

  以下是引用片段:

Untitled Document

我是頁首導(dǎo)航欄的公共信息

  頁尾文件,比如命名為foot.html计济,內(nèi)容為

  以下是引用片段:

  我是頁尾版權(quán)信息

  然后運行web server茸苇,在地址欄中打開test.shtml文件,就會得到一個完整的頁面沦寂,包括頭與尾文件学密。

  shtml中簡單的SSI命令

  SSI具有強(qiáng)大的功能,只要使用一條簡單的SSI命令就可以實現(xiàn)整個網(wǎng)站的內(nèi)容更新传藏,時間和日期的動態(tài)顯示腻暮,以及執(zhí)行shell和CGI腳本程序等復(fù)雜的功能。比如我們修改上面提及的test.shtml文件毯侦,加入以下代碼哭靖,將會顯示服務(wù)器日期以及客戶端IP等:

  以下是引用片段:

? 本文檔名稱:
?
? 時區(qū):
?
? 你的IP地址是:
?
? 今天是:? ? ?
?

  SSI指令基本格式

  程序代碼:

以下是引用片段:



  說明:

  1.是HTML語法中表示注釋,當(dāng)WEB服務(wù)器不支持SSI時侈离,會忽略這些信息试幽。

  2.#include 為SSI指令之一。

  3.file 為include的參數(shù), info.htm為參數(shù)值霍狰,在本指令中指將要包含的文檔名抡草。

  注意:

  1.“”是HTML語法中表示注釋,當(dāng)WEB服務(wù)器不支持SSI時蔗坯,會忽略這些信息康震。

  2.上面的標(biāo)點="",一個也不能少宾濒。

  3.SSI指令是大小寫敏感的腿短,因此參數(shù)必須是小寫才會起作用。詳細(xì)可以查看SHTML詳細(xì)教程 ,通過SHTML可以減輕許多工作負(fù)擔(dān)哦橘忱。另外:shtml文件在網(wǎng)頁服務(wù)器下運行才有效赴魁,直接用ie打開將被當(dāng)作是文本文件。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末钝诚,一起剝皮案震驚了整個濱河市颖御,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌凝颇,老刑警劉巖潘拱,帶你破解...
    沈念sama閱讀 212,884評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異拧略,居然都是意外死亡芦岂,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,755評論 3 385
  • 文/潘曉璐 我一進(jìn)店門垫蛆,熙熙樓的掌柜王于貴愁眉苦臉地迎上來禽最,“玉大人,你說我怎么就攤上這事袱饭〈ㄎ蓿” “怎么了?”我有些...
    開封第一講書人閱讀 158,369評論 0 348
  • 文/不壞的土叔 我叫張陵宁赤,是天一觀的道長舀透。 經(jīng)常有香客問我,道長决左,這世上最難降的妖魔是什么愕够? 我笑而不...
    開封第一講書人閱讀 56,799評論 1 285
  • 正文 為了忘掉前任,我火速辦了婚禮佛猛,結(jié)果婚禮上惑芭,老公的妹妹穿的比我還像新娘。我一直安慰自己继找,他們只是感情好遂跟,可當(dāng)我...
    茶點故事閱讀 65,910評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著婴渡,像睡著了一般幻锁。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上边臼,一...
    開封第一講書人閱讀 50,096評論 1 291
  • 那天哄尔,我揣著相機(jī)與錄音,去河邊找鬼柠并。 笑死岭接,一個胖子當(dāng)著我的面吹牛富拗,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播鸣戴,決...
    沈念sama閱讀 39,159評論 3 411
  • 文/蒼蘭香墨 我猛地睜開眼啃沪,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了窄锅?” 一聲冷哼從身側(cè)響起创千,我...
    開封第一講書人閱讀 37,917評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎入偷,沒想到半個月后签餐,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,360評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡盯串,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,673評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了戒良。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片体捏。...
    茶點故事閱讀 38,814評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖糯崎,靈堂內(nèi)的尸體忽然破棺而出几缭,到底是詐尸還是另有隱情,我是刑警寧澤沃呢,帶...
    沈念sama閱讀 34,509評論 4 334
  • 正文 年R本政府宣布年栓,位于F島的核電站,受9級特大地震影響薄霜,放射性物質(zhì)發(fā)生泄漏某抓。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 40,156評論 3 317
  • 文/蒙蒙 一惰瓜、第九天 我趴在偏房一處隱蔽的房頂上張望否副。 院中可真熱鬧,春花似錦崎坊、人聲如沸备禀。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,882評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽曲尸。三九已至,卻和暖如春男翰,著一層夾襖步出監(jiān)牢的瞬間另患,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,123評論 1 267
  • 我被黑心中介騙來泰國打工奏篙, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留柴淘,地道東北人迫淹。 一個月前我還...
    沈念sama閱讀 46,641評論 2 362
  • 正文 我出身青樓,卻偏偏與公主長得像为严,于是被迫代替她去往敵國和親敛熬。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,728評論 2 351