Dreamweaver MX 动态建站数据库路径的使用方法中
一、不推荐使用 Server.Mappath(相对文档路径地址的数据库文件)
虽然具有平台移植性,但对于不同层次,不同深度下的引用该数据库的文件,将不能完整地保证数据库路径的正确性。
举个例子:
1,数据库文件 cnbruce.mdb,所在文件夹 database(可 http 访问)
2,DW 自动生成的连接数据库文件 conn.asp,所在文件夹 Connections
3,假如在 DW 中测试连接路径成功,则必须输入地址为 Server.Mappath(“../database/cnbruce.mdb”)
但随后引用该数据库连接的文件必须保存在某文件夹中,该文件夹和 database 是同等的
即:
– database
– cnbruce.mdb
– Connections
– conn.asp
– 某文件夹
– x1.asp
这种结构才能使用正常。但这就必须要求站点中,所有引用了连接数据库文件的文件,必须存放在站点的一级目录下。显然这是不合理的,比如这样的结构。
– x2.asp
– database
– cnbruce.mdb
– Connections
– conn.asp
– 某文件夹
– 某子文件夹
– x3.asp
则 x2.asp 和 x3.asp 均不能正常显示。
原理分析:无论 conn.asp 放在哪里,无论 conn.asp 的内容如何,最后都是取决于引用了 conn.asp 的文件的文件位置和数据库的位置关系。
解决办法:在 conn.asp 中进行判定当前路径,根据不同级别值给出不同链接路径……对于初学者来说,麻烦。
第二种解决方法就是采用相对根目录法,但也是不推荐使用。
二、不推荐使用 Server.Mappath(相对根目录路径的数据库文件)
使用这种方法,首先需要将 IIS 默认站点调整到当前 DW 站点所在文件夹(XP 系统),或建立一个站点指向该文件夹(2K 等系统)。
反正一句话,就是当你输入 http://localhost/ 时,显示的内容已不是默认的 IIS 首页,而是你所设置的 DW 站点文件夹中的默认首页文档。
那么在设置了该 IIS 站点之后
1,数据库文件 cnbruce.mdb,所在文件夹 database(可 http 访问)
2,DW 自动生成的连接数据库文件 conn.asp,所在文件夹 Connections
3,假如在 DW 中测试连接路径成功,则输入地址为 Server.Mappath(“/database/cnbruce.mdb”)
/database/cnbruce.mdb 该方法就是相对根目录,高屋建瓴式的进行数据库路径的获得,无论哪个层次的,哪个目录下的站点文档均能正常显示。
但依然不推荐!原因如下:
在本地你可以自行修改 IIS 的站点,当上传到服务器或虚拟主机时,麻烦就来了。
1,假如你的虚拟主机服务商技术不过关,当在解析你网站根目录的时,不是指向到你的站点文件夹,而是指向服务器系统盘下的 wwwroot 文件夹。于是路径肯定错误。
2,假如你需要上传的并不是你的站点根目录,很显然,路径也肯定会发生解析错误。
所以,不推荐!那么,该怎么办?
三、推荐使用 Server.Mappath(本地绝对物理路径的数据库文件)
很简单,这个数据库在本地你总会知道它所在的位置吧。在 DW 中创建时就直接使用该绝对物理路径地址。
OK,来上传了。当然不可能那么巧:上传到服务器上的数据库物理路径地址和本地数据库物理路径地址是一样的 -__-!
所以,现在只需要获得上传到服务器空间上的数据库文件,在服务器上是处于什么物理地址就行了。
怎么获得?
1,建立一个 path.asp 文件,内容很简单
<%=server.mappath(“cnbruce.mdb”)%>
2,该文件和数据库文件 cnbruce.mdb,共一文件夹,捆绑式一同上传。
3,在 URL 地址栏查看 path.asp,得到 cnbruce.mdb 在服务器上的物理地址,拷贝该路径。
4,将本地的 conn.asp 中的物理路径,替换后再上传。一切 OK!