程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> ASP編程 >> 關於ASP編程 >> 有關Server.Mappath詳細接觸

有關Server.Mappath詳細接觸

編輯:關於ASP編程

asp中Server.MapPath的使用方法

老是忘記Server.MapPath的使用方法了,下面記錄一下,以備後用:
總注:Server.MapPath獲得的路徑都是服務器上的物理路徑,也就是常說的絕對路徑

1、Server.MapPath("/")

注:獲得應用程序根目錄所在的位置,如 C:\Inetpub\wwwroot\。

2、Server.MapPath("./")

注:獲得所在頁面的當前目錄,等價於Server.MapPath("")。

3、Server.MapPath("../")

注:獲得所在頁面的上級目錄。

4、Server.MapPath("~/")

注:獲得當前應用級程序的目錄,如果是根目錄,就是根目錄,如果是虛擬目錄,就是虛擬目錄所在的位置,如C:\Inetpub\wwwroot\Example\。

先看圖:



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\的問題。

可以看出:采用"/"的時候的路徑顯示就是本站的根地址。

10,一定要注意!

萬裡長征已經到最後了,說什麼也要支持住~!

我們雖然知道了conn.asp文件內容的寫法,但在我們引用的時候應該要注意include包含文件的實質:被包含文件是在包含文件中執行顯示的
所以,無論conn.asp放在哪裡,無論conn.asp的內容如何,最後都是取決於包含該文件的文件位置和數據庫的位置關系

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved