"file"与"virtual"的区别
2005-07-18 16:10
519 查看
在编写ASP程序的时候,通常都会用到<!--#include virtual/file="path/filename"-->把一段相对独立的文件代码嵌套到当前页面中来。在实际的使用中很多人对"file"和"virtual"的使用不太理解,导致页面执行的时候会出现错误。现就该问题作一个简述。
使用"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等文件中调用。
使用"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等文件中调用。
相关文章推荐
- <%@ include file=""%>与<jsp:include page=""/>区别
- shell "cmd 2>&1 >file" "cmd > file 2>&1" 的区别
- <jsp:include page="xxx"> 和<%@include file="xxx">区别
- <%@ include file=""%>与<jsp:include page=""/>区别
- <jsp:include page="">与<&@ include file="">的区别
- <jsp:include>和<%@include file=""%>区别
- "2>&1 > file"和 "> file 2>&1"区别?
- <jsp:include page=""/>和<%@include file=""%>-----JSP中两种页面引入方式的区别
- <%@ include file=""%> 和<jsp:include page=""/>两者的区别
- <%@ include file=""%>与<jsp:include page=""/>区别
- <%include file="a.jsp"%>与<jsp:include file="a.jsp"/>有什么区别?
- <jsp:include>和<%@include file=""%> 有什么区别
- <%@include file=""%>和 <jsp:include file="">之间的区别
- <%@ include file=""%>与<jsp:include page=""/>区别
- <%@ include file=""%>与<jsp:include page=""/>区别
- <jsp:include>和<%@include file=""%>的区别
- "=="和equals方法究竟的区别?
- <%@ include file=”url”%> 和<jsp:include page=”url” flush=”true” /> 的区别
- 提交表单<input type="button" value="登录" onclick="login()"/> 和<button onclick="login()">登录</button>区别
- <input type = "submit"> 提交方式和用js的form.submit()有什么区别?