通過使用 #include 指令,您可以在服務器執行 ASP 文件之前,把另一個 ASP 文件的內容插入到這個 ASP 文件中。
如何使用 #include 指令
這里有一個名為 mypage.asp 文件:
<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%> <!doctype html> <html> <head> <meta charset="utf-8"> <title>如何使用 #include 指令</title> </head> <body> <h3>至理名言</h3> <!-- 這里引用了 wisdom.inc 文件 --> <p><!--#include file="wisdom.inc"--></p> <h3>現在時間是:</h3> <!-- 這里應用了 time.asp 文件顯示當前時間--> <p><!--#include file="time.asp"--></p> </body> </html>
這是 wisdom.inc 文件內容:
“優秀的代碼是它自己最好的文檔。當你考慮要添加一個注釋時,問問自己,“如何能改進這段代碼,以讓它不需要注釋?” —— Steve McConnell 《代碼大全》
<% Response.Write(Time) %>
在 Firefox 瀏覽器中運行 mypage.asp 文件后,顯示效果如下:
通過【查看頁面源代碼】,它將如下所示:
引入文件的語法
如需在 ASP 頁面中引用文件,請把 #include 指令放在注釋標簽 <!-- --> 中:
<!--#include virtual="somefilename" --> or <!--#include file="somefilename" -->
#include virtual 后面跟的文件是以虛擬目錄開始的“絕對路徑“。
#include file 后面跟的是文件的相對路徑,不可以使用絕對路徑,例如:
我們通過例子來學習區別,需要調用的文件(time.asp 和 wisdom.inc)存放在 inc 目錄中,主頁面(mypage.asp)存放在 test 目錄中,樹結構下圖所示:
我們的 mypage.asp 分別用兩種方式進行引用,主要代碼如下:
...... <body> <h1>#include file 相對地址方式的引用演示</h1> <h3>至理名言</h3> <p><!--#include file="../inc/wisdom.inc"--></p> <h3>現在時間是:</h3> <p><!--#include file="../inc/time.asp"--></p> <hr> <h1>#include virtual 絕對地址方式的引用演示</h1> <h3>至理名言</h3> <p><!--#include virtual="/inc/wisdom.inc"--></p> <h3>現在時間是:</h3> <p><!--#include virtual="/inc/time.asp"--></p> </body> ......
調用后顯示效果如下:
特別提示
通過上面的部分,我們已經使用了 INC 作為被引用文件的文件擴展名。如果用戶嘗試直接瀏覽 INC 文件,這個文件中的內容會被顯示出來。最好還是使用 ASP 作為擴展名。
在腳本執行前,被引用的文件就會被處理和插入。下面的腳本無法運行,就是因為 ASP 會在為變量賦值前執行 #include 指令,如下:
<% fname = "/inc/wisdom.inc" %> <!--#include virtual="<%fname%>" -->
運行后會報錯,提示找不到包含的文件 <%fname%>。
你不能在腳本分隔符<%%>之間包含文件引用,也是無法執行的,如下:
<% For i = 1 To 10 <!--#include virtual="/inc/wisdom.inc"--> Next %>
但是下面的這段代碼是可以執行的,引用 10 遍,如下:
<%For i = 1 To 10%> <!--#include virtual="/inc/wisdom.inc"--> <%Next%>
被引用的文件可以引用其他文件,同一個 ASP 文件可以對同一個文件多次引用。
示例代碼下載