`

#include virtual

阅读更多

在编写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"

但是对asp3.0的编程中
关于virtual可以使用虚抑的相对路径来表示,我从未验证成功,还望有
人来指点
如 <!-- #include virtual="../script/my.inc" --> ????

 

结果证明:

(1)斜线或反斜线是无关紧要的
(2)file除了全路径不可以表示,而virtual则刚好相反

分享到:
评论

相关推荐

    asp #include file 与 #include virtual 的区别小结第1/2页

    使用相对路径,如:file=”script\file.inc”,file=”..\script\file.inc” 不可以用绝对路径,如:file=”\script\file.inc” #include virtual #include virtual后面可以跟文件的“绝对路径”,也可以跟形式上的...

    SQL通用防注入程序

    --#include virtual="/Neeao.com/Neeao_SqlIn.Asp"--&gt; 就可以做到页面防注入~~ 如果想整站防注,就在网站的一个公用文件中,如数据库链接文件conn.asp中! 添加&lt;!--#include virtual="/Neeao....

    Qt Virtual Keyboard 官方示例代码

    Key features of the Qt Virtual Keyboard include: Customizable keyboard layouts and styles with dynamic switching. Predictive text input with word selection. Character preview and alternative character...

    INC文件用法(页头、腰部广告、页脚的设计)

    为了解决在网站中,所有页面共有的 页头、腰部广告、页脚的设计问题,我在这里收集...--#include virtual="/inc/comm/adovbs.inc"--&gt; 就可以使用该ASP中的代码或函数了,效果和把文件的代码直接写在.asp中是一样的。

    html 中 #include file 的用法示例介绍

    直接在浏览器中打开a,没有任何显示,后来知道,include是SSI(Server Side Include),在html中不支持include,之后把a.htm改成a.aspx,并且在将该页面发布在iis上,然后a.aspx就可以看到内容了。在html中想达到...

    360通用asp防护代码

    --#include virtual="/360_safe3.asp"--&gt; 就可以做到页面防注入、跨站 如果想整站防注,就在网站的一个公用文件中,如数据库链接文件conn.asp中! 添加&lt;!--#include virtual="/360_safe3.asp"--&gt;来调用本代码

    Discuz!NT 论坛整合ASP程序论坛

    –#include virtual=”/inc/MD5.asp”–&gt; &lt;!–#include virtual=”/Inc/conn.asp” –&gt; &lt;&#37; ’16 md5 1234656789 323b453885f5181f ‘ discuz 25f9e794323b453885f5181f1b624d0b ‘Response.Write(Md5(...

    webpack-ssi-include-loader:废弃寻找 SSI 的 html 内容包括模板字符串,

    --#include virtual="/your/path/file.html" --&gt; &lt;!--#include file"/your/path/file.html" --&gt; 如果发现任何: 首先查看本地机器上是否可以找到该文件,按照localPath 如果没有,请尝试按照location ...

    dessi:快速,简单的服务器端包含扩展器

    德西 一个快速,简单的服务器端包含扩展器。...--#include virtual="/parts/head_part.html" --&gt; &lt;/ head &gt; &lt; body &gt; &lt;!--#include virtual="/parts/page_header_part.html" --&gt; &lt; main&gt; .

    圣诞节快到了,用C语言制作一个圣诞表白程序-供大家学习研究参考

    virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持 // 实现 protected: DECLARE_MESSAGE_MAP() }; CAboutDlg::CAboutDlg() : CDialogEx(CAboutDlg::IDD) { } void CAboutDlg::DoDataExchange...

    ddl语言自定义数据库字段

    --#include virtual="/public/back_top.asp"--&gt; &lt;html&gt;&lt;br&gt;&lt;head&gt;&lt;br&gt;&lt;meta http-equiv="Content-Type" content="text/html; charset=gb2312"&gt; &lt;link href="member/css/common.css" rel="stylesheet" type=...

    asp防止刷新功能实现代码

    –#include virtual=”AntiRefresh.asp” –&gt; 2.接着添加调用代码 代码如下: &lt;&#37; Const VarNameDateArr=”www_domai_net_App_DataArr” ‘队列名称 Const VarNameIPArr=”www_domai_net_App_IPArr” ‘队列...

    Sling-Dynamic-Include:吊索动态包含

    吊索动态包含 ...--#include virtual="/path/to/resource" --&gt; )。 但是,路径由新的选择器扩展(默认为nocache )。 这是必需的,因为过滤器必须知道何时返回实际内容。 无需修改组件即可使用

    ASP调用WebService转化成JSON数据,附json.min.asp

    --#Include virtual=/Include/json.min.asp--&gt; &lt;&#37; Dim strxml Dim str '定义soap消息 strxml = &lt;?xml version='1.0' encoding='utf-8'?&gt; strxml = strxml & &lt;soap:Envelope xmlns:xsi='...

    html-webpack-include-plugin:html支持include

    用于html和支持的webpack插件包括 &lt;!--#include virtual="./header.shtml" --&gt;

    专业的log类(C++)类

    #include "CriticalSection.h" #include "Thread.h" #include #include #include #include namespace common_utils { typedef struct _LogItem { std::string line; int grade; } LogItem; class Log : ...

    ASP、vbscript编码模板

    – #include virtual|file=”需要包含的文件” –&gt; &lt;&#37; ‘代码版权说明: ‘========================================================= ‘ File: 文件名.asp ‘ Version:1.0 ‘ Date: ‘ S

    ShapeReader

    virtual BOOL LoadFrame(UINT nIDResource, DWORD dwDefaultStyle = WS_OVERLAPPEDWINDOW | FWS_ADDTOTITLE, CWnd* pParentWnd = NULL, CCreateContext* pContext = NULL); // 实现 public: virtual ~CMainFrame...

    c++私有继承

    #include #include &lt;limits&gt; // 为了使用numeric_limits using namespace std; class Data { public: Data(int number,float Price):num(number),price(Price){} virtual ~Data(){}; int GetNumber()const{...

Global site tag (gtag.js) - Google Analytics