zoukankan      html  css  js  c++  java
  • 有关Server.Mappath详细说明

    先看图:




    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获得的路径都是服务器上的物理路径,也就是常说的绝对路径
    1、Server.MapPath("/")
    注:获得应用程序根目录所在的位置,如 C:\Inetpub\wwwroot\。
    2、Server.MapPath("./")
    注:获得所在页面的当前目录,等价于Server.MapPath("")。
    3、Server.MapPath("../")
    注:获得所在页面的上级目录。
    4、Server.MapPath("~/")
    注:获得当前应用级程序的目录,如果是根目录,就是根目录,如果是虚拟目录,就是虚拟目录所在的位置,如C:\Inetpub\wwwroot\Example

  • 相关阅读:
    asp.net微信内置浏览器下Session失效
    iOS 开发之路(WKWebView内嵌HTML5之图片上传) 五
    移动Web开发(二)
    iOS 开发之路(使用WKWebView加载Html5) 四
    iOS 开发之路(AES/DES加密实现) 三
    移动Web开发(一)
    iOS 开发之路(登陆验证调用WebService)二
    iOS 开发之路(登陆页键盘遮挡输入框问题)一
    canvas绘画常用方法
    JavaScript函数定义方式
  • 原文地址:https://www.cnblogs.com/juan/p/1431075.html
Copyright © 2011-2022 走看看