在編寫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的聲明週期咱們能夠看到第三,四種方法會報錯!所以,此種方式下只能使用第一二種方式.