社区后台开发 → 浏览:帖子主题
* 帖子主题:ASP 中 INCLUDE 包含文件 “file” 与 “virtual” 的区别
pojin (ID: 1)
头衔:论坛坛主
等级:究级天王[荣誉]
积分:2826
发帖:230
来自:保密
注册:2023-12-09 09:36:49
造访:2026-05-05 13:56:22
[ 第 1 楼 ] 216 回复
在编写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、:\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等文件中调用。
2024-04-08 09:38:38 IP:已设置保密
分页: 1, 共 1 页
快速回复主题
账号/密码
用户: 没有注册? 密码:
评论内容