有关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的内容如何,最后都是取决于包含该文件的文件位置和数据库的位置关系。


猜你喜欢
- 1. 引言星号* 往往被称为乘法运算符,是所有程序中最为常用的运算符号之一,在Python 中,星号还有很多隐藏的强大功能。本文将用最容易理
- asp 在线备份 恢复 sql server 数据库,对于远程没有提供sql server远程连接或打包下载的朋友是个临时解决方法,对于大数
- #当前文件的路径pwd = os.getcwd()#当前文件的父路径father_path=os.path.abspath(os.path.
- 环境介绍python3.5.2 64位django 1.10.3apache 2.4 64位windows 10重点在apache上。pyt
- 1. 线性表简介线性表是一种线性结构,它是由零个或多个数据元素构成的有限序列。线性表的特征是在一个序列中,除了头尾元素,每个元素都有且只有一
- 工欲善其事,必先利其器,开发工具这个东西觉得折腾下还是有好处的。但常常感觉专门抽出时间搞这个浪费时间,更常见的现象是已经明显感觉到当前的开发
- 本篇博客主要介绍的是pyinstaller在windows下的基本使用和基础避坑在windows中使用pyinstaller工具打包时会出现
- 模块导入方式: import osos模块是Python标准库中的一个用于访问操作系统相关功能的模块,os模块提供了一种可移植的使
- 之前摸索tensorflow的时候安装踩坑的时间非常久,主要是没搞懂几个东西的关系,就在瞎调试,以及当时很多东西不懂,很多报错也一知半解的。
- 我就废话不多说了,大家还是直接看代码吧!# python输入一个水仙花数(三位数) 输出百位十位个位"""从控
- 一、super函数简介python内置函数super()主要用于类的多继承中,用来查找并调用父类的方法,所以在单重继承中用不用 super
- 这阵子没有精力完整翻译和发到译言( 现下正渐入状态,预计写博客量会逐步提升回来),简短做一个概要翻译,为近期工作需要做一个参考。
- 数据库基本操作在Flask-SQLAlchemy中,插入、修改、删除操作,均由数据库会话管理。会话用db.session表示。在准备把数据写
- 本文实例讲述了python读取word文档的方法。分享给大家供大家参考。具体如下:首先下载安装win32comfrom win32com i
- 进程与线程想象在学校的一个机房,有固定数量的电脑,老师安排了一个爬虫任务让大家一起完成,每个学生使用一台电脑爬取部分数据,将数据放到一个公共
- 在进行数据操作时,经常会根据条件批量的修改数据,如以下数据,按照日期的条件,将部门日期下的promotion改为1tot_qtypriced
- 反射简介Go语言的反射是通过reflect包提供的,它允许我们在运行时访问接口的动态类型信息和值。其基本的操作包括获取一个类型的Kind(例
- 如下所示:python pyinstaller.py -F -p C:\python27; -i .\xxx.ico .\demo.py -
- Javascript函数类型判断完美解决方案在判断函数类型时,我们通常使用typeof方法,一般情况下,它会得到我们所预想的效果。但是,有一
- 在使用lepus3.7监控MySQL数据库的时候,碰到了以下几个问题,本博客给出了这些问题产生的原因,以及相应的解决办法。1. 问