Url相對路徑的問題總結

7 篇文章 0 订阅

很多時候,我們在圖片或者其他(a標簽,flash)中指定鏈接的時候,我們需要選擇是使用絕對路徑,或者是相對路徑.

最讓人擔心的是,有時候必須使用絕對路徑(如asp.net中的master內容),因為處于開發過程,沒有目標地址,也就無法配置絕對路徑。有時確必須使用相對路徑。

但是相對路徑寫好了,卻存在各種各樣的問題。

今天,我介紹大家兩種不一樣的方法。

首先介紹最簡單的就是HTML5里新增的Base標簽。

我們看它的用法,必須包含在head標簽中。

<head>
        <base target="_blank" href="www.Test.com" />
 </head>

最重要的是,base標簽配置好以后,瀏覽器將不再使用當前文檔內的相對URL,而使用指定的基本 URL 来解析所有的相对 URL。

看上圖,如果你的<a>、<img>、<link>、<form> 標簽中的URL為"chamychen.jpg",那么瀏覽器會在鏈接地址時自動在此URL前加上base標簽中指定的href地址,其打開方式也將遵循Base標簽中設定的target屬性。那么以后,我們可以在master,mvc可以在layout.shtml中設置base標簽,來解決頭疼的絕對徑路和相對徑路的問題。我們以后,可以把所有的相對徑路,都設置成從網站根目錄下開始。Base中配置網址就可以,解決所有的相對路徑和絕對路徑的問題了。

針對不支持html5的瀏覽器,其實我們可以使用C#寫幾句代碼,就可以獲取網站根目錄的地址了:

    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;
    }


綜上所述:你只需要使用“網址+相對路徑”的方式就能夠處理因相對徑路引發的問題。

如:http://www.Test.com/ab/abc.jpg

可以使用Base標簽:

<head>
        <base target="_blank" href="www.Test.com" />
 </head>

相對路徑寫成:<img src="ab/abc.jpg"/>

如果使用多C#來支持:則為HostUrl()+"ab/abc.jpg"


更多WEB開發技術請加群:Asp.Net/Wp8高級開發群 號碼:261882616

博主以及同事和你共同探討感興趣的話題。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值