conn.asp输出路径的问题

来源:百度知道 编辑:UC知道 时间:2024/06/06 12:56:44
conn.asp
-----------------------------------
<%
set conn=server.CreateObject("adodb.connection")
dbpath = server.MapPath("data/aaa.mdb")
response.Write dbpath
%>
-----------------------------------

admin/admin.asp
---------------------------------
<!--#include file="../conn.asp"-->
---------------------------------
输出的结果不同.
结果一:
H:\Inetpub\wwwroot\lw\data\aaa.mdb 这是直接运行conn.asp得出的

结果二:
H:\Inetpub\wwwroot\lw\admin\data\aaa.mdb 这是运行conn.asp同目录下文件夹admin内的admin.asp得出的结果.显然第二种结果错了.如何使admin.asp也能得出正确结果?
OK!!!搞定了...谢谢kimipolo和srbjh888
还想问下server.MapPath("/lw/data/aaa.mdb") 中的第一个/应该是根目录的意思吧...现在流行的虚拟机上都有个wwwroot文件夹和database文件夹.如果把aaa.mdb放在database文件夹中.路径应该写成/database/aaa.mdb了吧...

这是因为被包含文件是在包含文件中执行的
如果不同目录要使用同一个conn.asp文件
可以先打开iis,在默认网站上右击属性,打开主目录选项卡
将本地目录改为H:\Inetpub\wwwroot,conn.asp中的dbpath = server.MapPath("data/aaa.mdb") 改成dbpath = server.MapPath("/lw/data/aaa.mdb")
如果没有iis权限,只有在admin目录下建一个conn.asp文件,里面的路径是dbpath = server.MapPath("../data/aaa.mdb")
其它该目录下的文件引用此文件

这个问题很容易解决
只要在目录前多加一个斜杠
"data/aaa.mdb" ==>> "/data/aaa.mdb"
<%
set conn=server.CreateObject("adodb.connection")
dbpath = server.MapPath("/data/aaa.mdb")
response.Write dbpath
%>

这样在任何文件中访问 都会是 "H:\Inetpub\wwwroot\lw\data\aaa.mdb”