Asp.net獲取網站絕對路徑的幾種方法

在編寫ASP.NET應用程序的時候,有時候爲了更好的進行控制靜態文件的路徑,以及網站部署過程當中的虛擬路徑等問題,採用絕對路徑避免資源出現Not Found,下面先看看幾種獲取絕對路徑的方法:asp.net

 

1. 以根目錄運行網站結果以下:網站

1.  System.Web.VirtualPathUtility.ToAbsolute("~/")                    = /.net

2.  System.Web.HttpRuntime.AppDomainAppVirtualPath           = /orm

3. System.Web.HttpContext.Current.Request.ApplicationPath  = /事件

4. Page.ResolveUrl("~")                                                             = /資源

 

2. 以虛擬目錄運行結果以下(http://localhost:9011/VirtualTest/WebForm1.aspx)部署

1.  System.Web.VirtualPathUtility.ToAbsolute("~/")                    = /VirtualTest/get

2.  System.Web.HttpRuntime.AppDomainAppVirtualPath           = /VirtualTestit

3. System.Web.HttpContext.Current.Request.ApplicationPath  = /VirtualTestio

4. Page.ResolveUrl("~")                                                             = /VirtualTest/

 

經過以上方式能夠看出:方法1和方法4獲取的路徑一致且結尾帶」/」,而第二,三種方法爲虛擬路徑時不帶」/」還得進行一次轉換,稍微麻煩一點.

以上四種方法在頁面級任何地方訪問均沒有任何問題,可是咱們若是要在Global的Application_Start事件裏須要獲得網站絕對路徑,根據asp.net的聲明週期咱們能夠看到第三,四種方法會報錯!所以,此種方式下只能使用第一二種方式.

相關文章
相關標籤/搜索