天天看點

shtml

shtml接近靜态頁,比html慢,但比asp快。靜中帶動,靜若處仔,動如脫褲。

一、為什麼要用shtml

首先是因為它很接近靜态頁,速度比asp\aspx頁面快得多;其次是它可以通過外鍊公用頁面,以實作“動态”的功能。最重要一個原因,我覺得就是,這是網站将動态頁面靜态化的一個很好的途徑。這個途徑的步驟如下:

1、使用者通路一個shtml頁面

2、

1)如果這個shtml頁面已經存在,系統傳回該頁面,十分自然

2)如果這個shtml頁面并不存在,系統會報404錯誤,找不到該頁面;這時IIS裡自定義404錯誤會轉向一個動态頁,比如pagenotfound.aspx。在這個動态頁裡,組織相關内容,生成該shtml頁面,然後再轉向新生成的shtml頁。

這樣就通過使用者的通路,逐漸将一些類似文章之類的頁面靜态化了。

二、設定IIS以支援shtml

在IIS裡配置。

IIS7

如果安裝IIS的時候沒有裝上的話,需要補裝上這一塊

打開控制台 - 程式與功能 - 打開或關閉windows功能 - internet資訊服務(就是IIS) ,在網際網路服務裡,勾上“伺服器端包含”,安裝即可

shtml

IIS6

shtml

三、如何連結公用檔案

如果shtml沒有外鍊頁面,那它跟html沒有多大差別;使用了外鍊檔案,就可以部分地實作動态的功能。比如,将導覽列做成公用的外鍊檔案,如果有所變化,那麼所有連結它的shtml檔案都會反映出來,而無須重新這些shtml頁面。

連結頁面的話,可以連結實體路徑檔案,也可以連結虛拟路徑的。我覺得虛拟路徑更常用些。

類似 <!--#include virtual="/template/css.htm"-->

示例:

shtml頁面部分代碼

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>左直拳的馬桶</title>
    <meta name="description" content="左直拳的工作部落格,技術心得" />
    <meta name="keywords" content=".NET Web Java Android Sql Server" />
    <link rel="shortcut icon" href="/img/favicon.ico" />
    <!--#include virtual="/template/css.htm"-->
    <script type="text/javascript" src="/js/MergerJsHandler.ashx?href=/js/jquery.js,/js/jquery.scrollLoading-min.js,/js/page.js,/js/_login.js,/public/_pub_show.js,/master/_base.js&v=20130114"></script>
</head>
<body>
            <div id="mb_Navi">
                <div id="mb_divAdd" style="float:right;margin-right:10px;font-size:12px;">
                    <a href="/sc.aspx">+添加</a>
                </div>
                <div>
                    <!--#include virtual="/template/navi.htm"--> 
                </div>
            </div>      

被連結頁 /template/css.htm 代碼:

<style type="text/css">
    #divRelation{vertical-align:top;padding-top:5px; padding-left:5px; line-height:23px; font-size:12px;}
    #divRelation li { list-style-position:inside }
    #divPannel table{width:100%;font-size:12px;empty-cells:show;}
    #divPannel td{line-height:30px;text-align:center;}
    #divPannel img{vertical-align:text-bottom;}
    #divPannel span{margin-right:2px;}
    #divPannel a:link, #divPannel a:active, #divPannel a:visited {color:#777;text-decoration:underline;}
    #divPannel a:hover {color:red;text-decoration:underline;}
    #divPannel2 table{width:100%;font-size:12px;border:none;}
    #divPannel2 td{line-height:20px;text-align:center;}
    #divPannel2 img{vertical-align:text-bottom;}
    #divPannel2 a:link, #divPannel2 a:active, #divPannel2 a:visited {color:#777;text-decoration:none;}
    #divPannel2 a:hover {color:red;text-decoration:underline;}
    .bottom{vertical-align:bottom;}
    .txtad{margin:15px auto;}
    
    #st_btn {background-color:#0096E3;font-weight:bold;width:50px;text-align:center;}
    #st_btn a:link, #st_btn a:active, #st_btn a:visited {color:#fff;text-decoration:none;}
    #st_btn a:hover {color:#ff0;text-decoration:underline;} 
    #st_txt {border:1px solid #9CBBE0;width:160px;height:25px;padding-left:5px;}        
</style>
<link href="/css/default.css?ver=20130113" rel="stylesheet" type="text/css"/>      

【注意事項】

如果頁面編碼為utf-8,則需要

1、shtml或模闆頁需要儲存為 “utf-8 帶簽名”