Asp.Net中解决图片绝对路径问题

发布时间:2014-10-25 2:21:25
来源:分享查询网

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

返回顶部
查看电脑版