簡單來說,#include file後面跟的是檔案的“相對路徑”, #include virtual後面跟的是檔案的“絕對路徑”。
這裡說的「相對路徑」是相對於「主調檔案」所在的資料夾。
#include file
#include file後面接的是檔案的“相對路徑”,不可以用“絕對路徑”。
使用相對路徑,如:file="script/file.inc",file="../script/file.inc"
不可用絕對路徑,如:file="/script/file.inc"
#include virtual
#include virtual後面可以跟文件的“絕對路徑”,也可以跟形式上的“相對路徑”(所謂形式上的“相對路徑”,指的是這個路徑從形式上看是“相對路徑”,但它還是會被轉換成“絕對路徑”,因此本質上還是“絕對路徑”)
使用絕對路徑,如:virtual="/folder/file.inc"
使用形式上的「相對路徑」,如:virtual="folder/file.inc",會轉換成virtual="/folder/file.inc"
建議使用「絕對路徑」形式,如:virtual="/folder/file.inc",而不要寫成virtual="folder/file.inc",雖然這麼寫也可以
結合幾個例子,說下區別:
複製代碼代碼如下:
假設「包含檔案」和「被包含檔案」同在根目錄下名為folder的資料夾內,則virtual="folder/file.asp"是可以的,而file="folder/file.asp"是錯誤的。
如果一個站點下有2個資料夾folder1和folder2,folder1下有檔案file1.asp,folder2下有檔案file2.asp,如果file1.asp要呼叫file2.asp,那麼在file1.asp中可以這樣寫:
<!--#include virtual="/folder2/file2.asp"-->,
在這種情況下用<!--#include file="folder2/file2.asp"-->是錯誤的。
使用過程中,要注意下面幾點:
不論用#include file或#include virtual,在路徑中用單純用「/」或單純用「/」或二者混和使用都可以。
如:file="../script/file.inc", file="../script/file.inc",file="../script/file.inc"
#include file和#include virtual只能包含站外文件,不能包含站外文件。 例如,假設有一個網站名稱為website,使用virtual="website/file.asp"是錯誤的。