有关Server.Mappath详细接触

作者:cnbruce 来源:cnbruce 时间:2010-07-07 11:35:00 

很多的朋友一而再,再而三的在Server.Mappath上卡壳,cnbruce也是一遍两遍地重复,还是不能全部解决,所以通过下面的举例,希望更多的朋友能恍然大悟,透彻明白过来。

先看图:



1,首先在本机E盘下面建立red文件夹,夹子内继续建立conn.asp文件,文件内容如下:


<%=Server.Mappath("database/cnbruce.mdb")%>
<%=Server.Mappath("/database/cnbruce.mdb")%>
<%=Server.Mappath("../database/cnbruce.mdb")%>


主要调试三种路径最后显示的结果。

2,在red文件夹下面建立文件夹database,该夹子内部存放cnbruce.mdb文件。
所以现在可以很肯定的知道数据库文件的绝对路径是:E:/red/database/cnbruce.mdb
以上应该没有问题吧,很明白的继续往下看,不明白的赶快学下windows操作系统 -_-!

3,为了进行比较对照,继续在red文件夹下面建立blue文件夹,该夹子内部存放同样的conn.asp文件


<%=Server.Mappath("database/cnbruce.mdb")%>
<%=Server.Mappath("/database/cnbruce.mdb")%>
<%=Server.Mappath("../database/cnbruce.mdb")%>



4,当然很重要的就是对red文件夹进行虚拟目录的设定。方法是在red文件夹上右键鼠标,选择“共享...”,弹出窗口中继续选择“Web共享”标签,选择“共享这个文件夹”,别名设为“red”。最后“确定”。



5,OK,现在就可以来调试两个conn.asp文件了。

先看red文件夹下面的,输入的URL应该是:http://localhost/red/conn.asp



观看结果可以知道其中只有一个正确,那就是
<%=Server.Mappath("database/cnbruce.mdb")%>

6,再来看red文件夹下的blue文件夹内的,URL:http://localhost/red/blue/conn.asp



观察结果,仍然有一个正确,那就是
<%=Server.Mappath("../database/cnbruce.mdb")%>

7,来总结下:为什么两次显示正确路径的不是同一代码呢?
很显然是相对路径的缘故。red文件夹下的conn.asp文件和database文件夹是兄弟关系,所以要找到cnbruce.mdb,就可以直接database/cnbruce.mdb

而blue文件夹下的conn.asp和database文件夹是侄叔关系,要找cnbruce.mdb,当然是../database/cnbruce.mdb,其中../就是到上一层。

8,那再看<%=Server.Mappath("/database/cnbruce.mdb")%>两次显示的都是一样的效果,都指向到c:\inetpub\wwwroot\下面了,那就是因为在"database"前面添加了"/",表示到达根目录,而本地的IIS虚拟根目录就是c:\inetpub\wwwroot\,这在默认Web站点属性里面有。



9,注意,再看!一直都是在本地的,那上传到网络上有是怎么样呢?

首先,要正确清醒地知道conn.asp连接文件和*.mdb数据库文件的地址关系
接着,选择正确的Server.Mappath转换方法

建议,最好不采用"/"路径。因为这涉及到虚拟主机和非虚拟主机的问题。

所谓虚拟主机,比如我本人的站点,其虚拟的根目录就是网站本身的根目录,不存在转向到c:\inetpub\wwwroot\的问题。

可以调试
http://www.cnbruce.com/red/conn.asp
http://www.cnbruce.com/red/blue/conn.asp

可以看出:采用"/"的时候的路径显示就是本站的根地址。

10,一定要注意!

万里长征已经到最后了,说什么也要支持住~!

我们虽然知道了conn.asp文件内容的写法,但在我们引用的时候应该要注意include包含文件的实质:被包含文件是在包含文件中执行显示的
所以,无论conn.asp放在哪里,无论conn.asp的内容如何,最后都是取决于包含该文件的文件位置和数据库的位置关系

标签:Server.Mappath,路径,asp
0
投稿

猜你喜欢

  • django 通过URL访问上传的文件方法

    2022-09-02 22:03:59
  • python 时间 T 去掉 带上ms 毫秒 时间格式的操作

    2021-12-16 23:24:45
  • 解决pyshp UnicodeDecodeError的问题

    2021-08-01 10:17:39
  • Python 多线程的实例详解

    2023-09-24 23:15:04
  • Array.prototype.concat不是通用方法反驳[译]

    2024-05-25 15:19:13
  • Python定时任务实现方案

    2021-05-05 04:11:54
  • PHP mysqli扩展库 预处理技术的使用分析

    2023-11-21 07:10:21
  • Django之PopUp的具体实现方法

    2023-03-26 13:04:54
  • 为mysql数据库添加添加事务处理的方法

    2024-01-14 04:53:19
  • [Oracle] CPU/PSU补丁安装详细教程

    2024-01-27 22:17:52
  • 谈谈网页设计中的字体应用 (4) 实战应用篇·下

    2009-11-24 13:13:00
  • Python嵌入C/C++进行开发详解

    2024-01-02 06:39:48
  • Python enumerate函数遍历数据对象组合过程解析

    2023-09-22 02:51:06
  • asp是的日期转换为星座的函数

    2011-02-26 11:11:00
  • 如何通过python画loss曲线的方法

    2021-01-04 09:01:18
  • Pandas统计重复的列里面的值方法

    2022-03-06 20:20:57
  • 解决Oracle安装遇到Enterprise Manager配置失败问题

    2024-01-21 03:48:28
  • python中sqllite插入numpy数组到数据库的实现方法

    2024-01-16 20:31:29
  • 可用性测试过程中需要关注的一些细节

    2009-03-06 12:38:00
  • 命令行传递参数argparse.ArgumentParser的使用解析

    2023-09-09 12:28:17
  • asp之家 网络编程 m.aspxhome.com