asp不能用 .. 表示父目录(服务器)

发布时间:2017年11月12日 作者:未知 查看次数:2309

尽然在服务器上遇到 asp不能用 '..' 表示父目录.


========================================Baidu


http://www.icoa.cn/a/489.html

ASP不能用 '..' 表示父目录的提示一般出现在Windows2003架设的IIS上,是因为2003鉴于安全的原因不推荐使用父目录。这时候有两种解决方法,一种是设置一下IIS,另一种是用另外一种方式来引用文件。

第一、(需要有服务器管理权限)设置IIS,打开Internet 信息服务(IIS)管理器→网站站点→属性→主目录选项卡→配置→选项,选上"启用父路径"的复选框即可。

第二、有时候我们既没有服务器的控制权,有没法联系服务器提供商来修改允许父目录,那怎么办呢?

其实还有一种代码是不受父目录的限制的,那就是:

<!--#include virtual="../conn.asp"-->

很明显可以看出virtual就是虚拟的意思,这个代码就是使用虚拟路径。

include file 与include virtual的区别 

1.#include file 包含文件的相对路径,#include virtual包含文件的虚拟路径。

2. 在同一个虚拟目录内,<!--#include file="file.asp"-->和<!--#include virtual="file.asp"-->效果是相同的,但假设虚拟目录名为myweb,则<!--#include virtual="myweb/file.asp"-->也可以通过调试,但我们知道<!--#include file="myweb/file.asp"-->是绝对要报错的。 

3.如果一个站点下有2个虚拟目录myweb1和 myweb2,myweb1下有文件file1.asp,myweb2下有文件file2.asp,如果file1.asp要调用file2.asp,那 么在file1.asp中要这样写:<!--#include virtual="myweb2/file2.asp"-->,在这种情况下用#include file是无法实现的,用<!--#include file="myweb2/file2.asp"-->必然报错。相反,在myweb2的文件中包含myweb1中的文件也是一样。如果该被包含文 件在某个文件夹下面,只要在虚拟路径中加上该文件夹即可。 

4.不论用#include file 还是 #include virtual,在路径中用“/”还是“\”或者二者交叉使用都不会影响编译效果,程序会顺利执行。 

5.以上情况不适用于2个站点文件的相互调用,而且在同一个站点内,<!--#include file="file.asp"-->和<!--#include virtual="file.asp"-->等效,但假设站点名为website,使用<!--#include virtual="website/file.asp"-->是错误的。





版权所有!www.sieye.cn
E.Mail:sieye@sohu.com QQ:66697110