这里说的“相对路径”是相对于“主调文件”所在的文件夹。
#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"是错误的。