在編寫ASP程序的時候,通常都會用到<!--#include virtual/file="path/filename"-->把一段相對獨立的文件代碼嵌套到當前頁面中來。在實際的使用中很多人對"file"和"virtual"的使用不太理解,導致頁面執行的時候會出現錯誤,F就該問題作一個簡述。
使用"file"的時候,等號后面使用的是相對路徑。所謂相對路徑,是以當前文件所在的文件夾作為始點,通過路徑搜索,得到其它文件(或文件夾)與當前文件的路徑關系。使用"virtual"的時候,等號后面使用的是絕對路徑。絕對路徑,是以網站根目錄作為始點,通過路徑搜索,得到文件(或文件夾)的完整路徑。
這兩個定義不太好理解,舉例說明:IIS設置的站點根目錄為"c:\wwwroot\",a.asp文件所在目錄是c:\wwwroot\afolder,b.asp文件所在目錄是c:\wwwroot\bfolder,c.asp文件所在目錄是c:\wwwroot\afolder\cfolder,則以a.asp作為起點尋找b.asp,所經過的路徑依次為c:\wwwroot\afolder、c:\wwwroot、c:\wwwroot\bfolder;而尋找c.asp,所經過的路徑就是c:\wwwroot\afolder、c:\wwwroot\afolder\cfolder。由此得出,b.asp對于a.asp的相對路徑就是../bfolder;相同的,a.asp對于b.asp的相對路徑就是../afolder。當a.asp文件需要使用"file"調用b.asp文件的時候,其語句就應該寫為<!--#include file="../bfolder/b.asp"-->。調用c.asp,其語句是<!--#include file="cfolder/c.asp"-->。而無論什么時候,a.asp、b.asp、c.asp這三個文件的絕對路徑分別是c:\wwwroot\afolder、c:\wwwroot\bfolder、c:\wwwroot\bfolder\cfolder。因此,在a.asp文件中使用"virtual"調用另外兩個文件,分別為<!--#include virtual="/bfolder/b.asp"-->和<!--#include virutal="/bfolder/cfolder/c.asp"-->。
另外需要提一下的是include與iframe的區別。前者是把一個相對獨立的文件代碼作為調用文件代碼的一部分執行,該語句屬于ASP語言,只能用于asp文件中。而iframe是單純把一個獨立的文件在調用文件中嵌套顯示,兩者是完全獨立的,無任何關系,且iframe屬于HTML語言,可在asp、htm、html等文件中調用。
文章來源于領測軟件測試網 http://www.kjueaiud.com/