转载自新浪博客关于 asp或者SHTML 中 # include file/virtual的使用区别

#include virtual/file比较

  (2009-04-05 17:28:57)
   
在编写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等文件中调用。
   include file 可以用相对路径或全路径与文件名的组合来描述
   如:file="..\script\my.inc" file="../script/my.inc"
奇怪的是竟然可以 file="../script\my.inc"也通过编译
他的禁止:是不可以用绝对路径来表示
如:file="/script/my.inc"
而对virtual可以使用虚抑的绝对路径来表示
virtual="/yousite/script/my.inc"
raintung
2001.5.4
但是对asp3.0的编程中
关于virtual可以使用虚抑的相对路径来表示,我从未验证成功,还望有
人来指点
如 &lt;!-- #include virtual="../script/my.inc" --&gt; ????
结果证明:(1)斜线或反斜线是无关紧要的
(2)file除了全路径不可以表示,而virtual则刚好相反
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值