ASP系列講座(十四)包含文件
作者:Eve Cole
更新時間:2009-05-30 19:58:52
SSI 指令提供使用者在Web 伺服器處理之前將一個檔案的內容插入到另一個檔案的方法。 ASP 只使用這機制的#include 指令。要在.asp 檔案中插入一個文件,使用下面的語法:
<!--#include virtual | file ="filename"-->
virtual 和file 關鍵字指示用來包含該檔案的路徑的類型,filename 是您想要包含的檔案的路徑和名稱。
被包含檔案不要求專門的檔案副檔名;但是,為被包含檔案賦予.inc 副檔名以便和其他類型檔案相區分是一個良好的程式設計習慣。
使用Virtual 關鍵字使用Virtual 關鍵字指出路徑開始於虛擬目錄。例如,如果一個被命名為Footer.inc 的檔案屬於一個名為/Myapp 的虛擬目錄,則下面的一行將把Footer.inc 的內容插入到包含該行的檔案中:
<!--#include virtual ="/myapp/footer.inc"-->
使用File 關鍵字使用file 關鍵字指示使用相對路徑。相對路徑開始於含有該包含檔案的目錄。例如,如果您的檔案位於目錄Myapp 中,而檔案Header1.inc 在MyappHeaders 中,下面的一行將把Header1.inc 插入到您的檔案中:
<!--#include file ="headers/header1.inc"-->
注意,到被包含檔案Headers/header1.inc 的路徑是相對於包含檔案的;如果包含#include 語句的腳本不在/Myapp 目錄中,那麼該語句將無法運作。
如果在Internet 服務管理員中的「啟用上層目錄」選項被選中,則也可以使用file 關鍵字和../ 語法包含父目錄即上一層目錄中的檔案。
被包含檔案的位置被包含檔案可以在您的Web 網站內的某個目錄中,也可以在您的Web 網站之外。通常,您應該使被包含檔案位於Web 網站的目錄中。如果一個被包含文件位於您的Web 網站內,則當瀏覽器下次要求包含文件時,將顯示對被包含文件的改變。但是,如果被包含檔案位於您的Web 網站之外,直到ASP 應用程式重新啟動或Web 伺服器重新啟動時,這種變更才能反映出來。 ASP 偵測在應用程式命名空間中(在應用程式的起始目錄下)的任何包含檔案的變更。
包含文件:提示和警告一個被包含文件也可以包含其他的文件。如果#include 指令沒有導致循環,一個.asp 檔案可以多次包含同一個檔案。例如,如果檔案First.asp 包含檔案Second.inc,則Second.inc 一定不能再包含First.asp。一個文件也不能包含自身。 ASP 會偵測此類循環或巢狀錯誤,並在偵測到時產生錯誤訊息,同時停止處理被要求的.asp 檔案。
ASP 在執行腳本命令之前包含檔案。因此,不能用腳本指令去建立被包含檔案的名稱。例如,下面的腳本將不能開啟Header1.inc,因為ASP 會在它指派一個檔案名稱給變數name 之前先執行#include 指令。
<!-- This script will fail -->
<% name=(header1 & ".inc") %>
<!--#include file="<%= name %>"-->
腳本指令和程序必須完全包含在腳本定界符<% 和%> 、HTML 標記<SCRIPT> 和</SCRIPT> 或HTML 標記<OBJECT> 和</OBJECT> 中。也就是說,不能在一個.asp 包含檔中開啟一個腳本定界符,然後在一個被包含的檔案中才關閉該定界符;腳本或腳本指令必須是一個完整的單元。例如,下面的腳本將無法運行:
<!-- This script will fail -->
<%
為 i = 1 To n
statements in main file
<!--#include file="header1.inc" -->
Next
%>
下面的腳本將正常運作:
<%
為 i = 1 to n
statements in main file
%>
<!--#include file="header1.inc" -->
<% Next %>