Asp.Net中解決圖片絕對路徑問題

來源:互聯網
上載者:User

Asp.Net在頁面設計上如果用的Master模板最怕的就是圖片的路徑,不同深度引用總會出現圖片消失等問題!一些控制項的使用也會出現同等的問題。於是想來想去,終於想到了一個方法。

對於圖片,我們可以在後台定義一個路徑,路徑的格式為"~/image/test.jpg"然後前台引用。

注意:“~”只可以在服務端使用。

例如:

text.aspx.cs裡面

public string imgpath="~/image/test.jpg";

text.aspx裡面

<asp:Image ID="Image1" runat="server" ImageUrl='<%= imgpath%>' />

 

如果是div或者其他什麼的背景:

我們可以在更目錄下建一個App_Themes檔案夾,然後把自己寫的css放在裡面,圖片相對與該檔案就好。

以後在不同的地方都載入該css就可以了。

 

PS:提到路徑我就在多一句,對於控制項的使用,起cs裡面的路徑是相對於控制項所在的檔案夾,而不是使用該控制項的頁面所在的檔案夾

比如,控制項1後台有個Image1.ImageUrl="images/test.jpg",控制項1在“include”檔案夾,而使用該控制項的頁面在根目錄下,那圖片的路徑指在include/images.test.jpg,而不是根目錄的images.test.jpg

 

 

補充:(補充內容來自“卑微的程式員”http://jy147154.bokee.com/view.b?diaryId=16134580)

.asax 的路徑問題就如同 ASP 的 include 進來的檔案的路徑問題一樣,兩個字:麻煩。

。aspx頁面可以這樣引用asax
<%@ register src="~/UserControls/xxx.ascx" tagname="myuc" tagprefix="uc1" %>
~/ 的意思是相對網站的虛擬根路徑

對於.asax內部的片、串連等:
如果是Web空件如,HyperLink,Image,路徑設定同上:
<asp:hyperlink navigatorurl="~/yourfolder/yourpage.aspx" runat = server />

如果是靜態HMTL的如<a/> <img/>等標記:

方法1:
加上runat=server使之成為HTML伺服器空件:
<img src="~/images/myimg.gif"/>
方法2:動態過程絕對路徑
<img src="<% =HttpContext.Current.Request.ApplicationPath %>/images/myimg.gif">

記住 ~/ 僅對 ASP.NET  的伺服器空件起作用就可以了。

 

1."<% =HttpContext.Current.Request.ApplicationPath %>/

2.HttpContext.Current.Request.Url.GetLeftPart(UriPartial.Authority)  

 

3.runat=server

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.