有關(guān)Server.Mappath詳細(xì)接觸
asp中Server.MapPath的使用方法
老是忘記Server.MapPath的使用方法了,下面記錄一下,以備后用:
總注:Server.MapPath獲得的路徑都是服務(wù)器上的物理路徑,也就是常說(shuō)的絕對(duì)路徑
1、Server.MapPath("/")
注:獲得應(yīng)用程序根目錄所在的位置,如 C:\Inetpub\wwwroot\。
2、Server.MapPath("./")
注:獲得所在頁(yè)面的當(dāng)前目錄,等價(jià)于Server.MapPath("")。
3、Server.MapPath("../")
注:獲得所在頁(yè)面的上級(jí)目錄。
4、Server.MapPath("~/")
注:獲得當(dāng)前應(yīng)用級(jí)程序的目錄,如果是根目錄,就是根目錄,如果是虛擬目錄,就是虛擬目錄所在的位置,如C:\Inetpub\wwwroot\Example\。
先看圖:
1,首先在本機(jī)E盤下面建立red文件夾,夾子內(nèi)繼續(xù)建立conn.asp文件,文件內(nèi)容如下:
<%=Server.Mappath("database/cnbruce.mdb")%> <%=Server.Mappath("/database/cnbruce.mdb")%> <%=Server.Mappath("../database/cnbruce.mdb")%> |
主要調(diào)試三種路徑最后顯示的結(jié)果。
2,在red文件夾下面建立文件夾database,該夾子內(nèi)部存放cnbruce.mdb文件。
所以現(xiàn)在可以很肯定的知道數(shù)據(jù)庫(kù)文件的絕對(duì)路徑是:E:/red/database/cnbruce.mdb
以上應(yīng)該沒有問(wèn)題吧,很明白的繼續(xù)往下看,不明白的趕快學(xué)下windows操作系統(tǒng) -_-!
3,為了進(jìn)行比較對(duì)照,繼續(xù)在red文件夾下面建立blue文件夾,該夾子內(nèi)部存放同樣的conn.asp文件
<%=Server.Mappath("database/cnbruce.mdb")%> <%=Server.Mappath("/database/cnbruce.mdb")%> <%=Server.Mappath("../database/cnbruce.mdb")%> |
4,當(dāng)然很重要的就是對(duì)red文件夾進(jìn)行虛擬目錄的設(shè)定。方法是在red文件夾上右鍵鼠標(biāo),選擇“共享...”,彈出窗口中繼續(xù)選擇“Web共享”標(biāo)簽,選擇“共享這個(gè)文件夾”,別名設(shè)為“red”。最后“確定”。
5,OK,現(xiàn)在就可以來(lái)調(diào)試兩個(gè)conn.asp文件了。
先看red文件夾下面的,輸入的URL應(yīng)該是:http://localhost/red/conn.asp
觀看結(jié)果可以知道其中只有一個(gè)正確,那就是
<%=Server.Mappath("database/cnbruce.mdb")%>
6,再來(lái)看red文件夾下的blue文件夾內(nèi)的,URL:http://localhost/red/blue/conn.asp
觀察結(jié)果,仍然有一個(gè)正確,那就是
<%=Server.Mappath("../database/cnbruce.mdb")%>
7,來(lái)總結(jié)下:為什么兩次顯示正確路徑的不是同一代碼呢?
很顯然是相對(duì)路徑的緣故。red文件夾下的conn.asp文件和database文件夾是兄弟關(guān)系,所以要找到cnbruce.mdb,就可以直接database/cnbruce.mdb
而blue文件夾下的conn.asp和database文件夾是侄叔關(guān)系,要找cnbruce.mdb,當(dāng)然是../database/cnbruce.mdb,其中../就是到上一層。
8,那再看<%=Server.Mappath("/database/cnbruce.mdb")%>兩次顯示的都是一樣的效果,都指向到c:\inetpub\wwwroot\下面了,那就是因?yàn)樵?database"前面添加了"/",表示到達(dá)根目錄,而本地的IIS虛擬根目錄就是c:\inetpub\wwwroot\,這在默認(rèn)Web站點(diǎn)屬性里面有。
9,注意,再看!一直都是在本地的,那上傳到網(wǎng)絡(luò)上有是怎么樣呢?
首先,要正確清醒地知道conn.asp連接文件和*.mdb數(shù)據(jù)庫(kù)文件的地址關(guān)系
接著,選擇正確的Server.Mappath轉(zhuǎn)換方法
建議,最好不采用"/"路徑。因?yàn)檫@涉及到虛擬主機(jī)和非虛擬主機(jī)的問(wèn)題。
所謂虛擬主機(jī),比如我本人的站點(diǎn),其虛擬的根目錄就是網(wǎng)站本身的根目錄,不存在轉(zhuǎn)向到c:\inetpub\wwwroot\的問(wèn)題。
可以看出:采用"/"的時(shí)候的路徑顯示就是本站的根地址。
10,一定要注意!
萬(wàn)里長(zhǎng)征已經(jīng)到最后了,說(shuō)什么也要支持住~!
我們雖然知道了conn.asp文件內(nèi)容的寫法,但在我們引用的時(shí)候應(yīng)該要注意include包含文件的實(shí)質(zhì):被包含文件是在包含文件中執(zhí)行顯示的。
所以,無(wú)論conn.asp放在哪里,無(wú)論conn.asp的內(nèi)容如何,最后都是取決于包含該文件的文件位置和數(shù)據(jù)庫(kù)的位置關(guān)系。
相關(guān)文章
javascript asp教程第十課--global asa
javascript asp教程第十課--global asa...2007-03-03利用ASP發(fā)送和接收XML數(shù)據(jù)的處理方法
因?yàn)橐鲆苿?dòng)夢(mèng)網(wǎng)WAP的一些接口,所以要用到這種方式,接下來(lái)會(huì)有ASP.net版本的,這個(gè)是ASP版本的,利用了MSXML2.XMLHTTP對(duì)像2006-06-06ASP文章系統(tǒng)解決方案實(shí)現(xiàn)上一頁(yè)下一頁(yè)
ASP文章系統(tǒng)解決方案實(shí)現(xiàn)上一頁(yè)下一頁(yè)...2007-01-01ASP Recordset 分頁(yè)顯示數(shù)據(jù)的方法(修正版)
最近給別人培訓(xùn)asp 分頁(yè),對(duì)于asp的入門新手來(lái)說(shuō),最簡(jiǎn)單的分頁(yè)就是用Recordset 分頁(yè)技術(shù)了,他主要用于一些少量數(shù)據(jù)的分頁(yè),對(duì)于新手學(xué)習(xí)是最好的了,對(duì)于大量數(shù)據(jù)分頁(yè)不建議用。2008-11-11asp實(shí)現(xiàn)防止站外提交內(nèi)容的兩個(gè)方法
asp實(shí)現(xiàn)防止站外提交內(nèi)容的兩個(gè)方法...2007-01-01用JAVASCRIPT幫我寫個(gè)計(jì)數(shù)器
用JAVASCRIPT幫我寫個(gè)計(jì)數(shù)器...2007-02-02