Url相對路徑的問題總結(jié)
更新時間:2012年11月01日 21:59:32 作者:
很多時候,我們在圖片或者其他(a標(biāo)簽,flash)中指定鏈接的時候,我們需要選擇是使用絕對路徑,或者是相對路徑.
最讓人擔(dān)心的是,有時候必須使用絕對路徑(如asp.net中的master內(nèi)容),因?yàn)樘幱陂_發(fā)過程,沒有目標(biāo)地址,也就無法配置絕對路徑。有時確必須使用相對路徑。
但是相對路徑寫好了,卻存在各種各樣的問題。
今天,我介紹大家兩種不一樣的方法。
首先介紹最簡單的就是HTML5里新增的Base標(biāo)簽。
我們看它的用法,必須包含在head標(biāo)簽中。
<head>
<base target="_blank" href="www.Test.com" />
</head>
最重要的是,base標(biāo)簽配置好以后,瀏覽器將不再使用當(dāng)前文檔內(nèi)的相對URL,而使用指定的基本 URL 來解析所有的相對 URL。
看上圖,如果你的<a>、<img>、<link>、<form> 標(biāo)簽中的URL為"chamychen.jpg",那么瀏覽器會在鏈接地址時自動在此URL前加上base標(biāo)簽中指定的href地址,其打開方式也將遵循Base標(biāo)簽中設(shè)定的target屬性。那么以后,我們可以在master,mvc可以在layout.shtml中設(shè)置base標(biāo)簽,來解決頭疼的絕對徑路和相對徑路的問題。我們以后,可以把所有的相對徑路,都設(shè)置成從網(wǎng)站根目錄下開始。Base中配置網(wǎng)址就可以,解決所有的相對路徑和絕對路徑的問題了。
針對不支持html5的瀏覽器,其實(shí)我們可以使用C#寫幾句代碼,就可以獲取網(wǎng)站根目錄的地址了:
public static string HostUrl()
{
String path = HttpContext.Current.Request.Url.Scheme + "://" +
HttpContext.Current.Request.Url.Authority +
(HttpContext.Current.Request.ApplicationPath == "/" ? "" : HttpContext.Current.Request.ApplicationPath);
return path;
}
綜上所述:你只需要使用“網(wǎng)址+相對路徑”的方式就能夠處理因相對徑路引發(fā)的問題。
如:http://www.Test.com/ab/abc.jpg
可以使用Base標(biāo)簽:
<head>
<base target="_blank" href="www.Test.com" />
</head>
相對路徑寫成:<img src="ab/abc.jpg"/>
如果使用多C#來支持:則為HostUrl()+"ab/abc.jpg"
但是相對路徑寫好了,卻存在各種各樣的問題。
今天,我介紹大家兩種不一樣的方法。
首先介紹最簡單的就是HTML5里新增的Base標(biāo)簽。
我們看它的用法,必須包含在head標(biāo)簽中。
復(fù)制代碼 代碼如下:
<head>
<base target="_blank" href="www.Test.com" />
</head>
最重要的是,base標(biāo)簽配置好以后,瀏覽器將不再使用當(dāng)前文檔內(nèi)的相對URL,而使用指定的基本 URL 來解析所有的相對 URL。
看上圖,如果你的<a>、<img>、<link>、<form> 標(biāo)簽中的URL為"chamychen.jpg",那么瀏覽器會在鏈接地址時自動在此URL前加上base標(biāo)簽中指定的href地址,其打開方式也將遵循Base標(biāo)簽中設(shè)定的target屬性。那么以后,我們可以在master,mvc可以在layout.shtml中設(shè)置base標(biāo)簽,來解決頭疼的絕對徑路和相對徑路的問題。我們以后,可以把所有的相對徑路,都設(shè)置成從網(wǎng)站根目錄下開始。Base中配置網(wǎng)址就可以,解決所有的相對路徑和絕對路徑的問題了。
針對不支持html5的瀏覽器,其實(shí)我們可以使用C#寫幾句代碼,就可以獲取網(wǎng)站根目錄的地址了:
復(fù)制代碼 代碼如下:
public static string HostUrl()
{
String path = HttpContext.Current.Request.Url.Scheme + "://" +
HttpContext.Current.Request.Url.Authority +
(HttpContext.Current.Request.ApplicationPath == "/" ? "" : HttpContext.Current.Request.ApplicationPath);
return path;
}
綜上所述:你只需要使用“網(wǎng)址+相對路徑”的方式就能夠處理因相對徑路引發(fā)的問題。
如:http://www.Test.com/ab/abc.jpg
可以使用Base標(biāo)簽:
<head>
<base target="_blank" href="www.Test.com" />
</head>
相對路徑寫成:<img src="ab/abc.jpg"/>
如果使用多C#來支持:則為HostUrl()+"ab/abc.jpg"
相關(guān)文章
C#使用AutoMapper實(shí)現(xiàn)類映射詳解
AutoMapper是一個用于.NET中簡化類之間的映射的擴(kuò)展庫,這篇文章主要介紹了C#如何使用AutoMapper實(shí)現(xiàn)類映射,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-01-01c# 實(shí)現(xiàn)子窗口關(guān)閉父窗口也關(guān)閉的簡單實(shí)例
下面小編就為大家?guī)硪黄猚# 實(shí)現(xiàn)子窗口關(guān)閉父窗口也關(guān)閉的簡單實(shí)例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-02-02C# Bitmap圖像處理(含增強(qiáng)對比度的三種方法)
本文主要介紹了C# Bitmap圖像處理(含增強(qiáng)對比度的三種方法),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-11-11