Daily: File特性不能以斜杠或反斜杠开始的解决方案
2009年6月28日星期日 | | |Daily: File特性不能以斜杠或反斜杠开始的解决方案 以前做项目时都是用的调用代码如下: <!--#include File="Include/md5.Asp" --> 一般而言,网站目录简单的用如此代码不会出现错误!最近做一个项目,因为文件夹很多,所以网站的根目录建了很多文件夹,它们之关的关系要用到调用语句时出现以下错误提示: Active Server Pages 错误 'ASP 0130' 无效的 File 特性 /Admin/Login.Asp,行 12 File 特性 '/Include/md5.Asp' 不能以斜杠或反斜杠开始。 Active Server Pages 错误 'ASP 0131'
不允许的父路径 /wit/chinese/index.asp,行 5 包含文件 '../Inc/eshopcode.asp' 不能用 '..' 表示父目录。 错误的代码为:<!--#include File="/Include/MD5.asp"--> 奇怪,以前没有用过绝对路径,没注意过这方面,赶紧去GOOGLE一下先~~ 答案一:有人说是IIS没有设置父路径,启动父路径选项方法:站点属性--主目录--配置--选项--启动父路径! 不允许的父路径 /Admin/Login.Asp,行 11 包含文件 '../Conn.Asp' 不能用 '..' 表示父目录。 答案二:有人提议说,如果是相对调用可用谐如../的方式,可惜我想相对整站的路径,显然,此方法不适合!最后终于找到解决方法,就是把以下代码 呵呵,群众的力量是无限的,至此,问题解决! 以下为网络相关注释--------------在编写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可以使用虚抑的相对路径来表示,我从未验证成功,还望有 人来指点 如 <!-- #include virtual="../script/my.inc" --> 果证明:(1)斜线或反斜线是无关紧要的 (2)file除了全路径不可以表示,而virtual则刚好相反 Active Server Pages 错误 'ASP 0131' 不允许的父路径 /Admin/Login.Asp,行 11 包含文件 '../Conn.Asp' 不能用 '..' 表示父目录。 希望对遇到相同问题的朋友有用.. ^_^ 谢谢访问我的博客空间 http://ytfso 我的QQ空间 Visual Studio 2008 Professional Edition Visual Studio 2008 Professional Edition 到时下载... |