用户控件图片相对路径出错的问题
1、新建了一个网站,website是网站的根目录,下面有一个/images目录,放置一个图片head.JPG,用户控件head.ascx放置在/Controls目录下。
2、用户控件head.ascx,加入/images目录下的图片head.JPG,用两种方法,head.ascx代码如下:
<%@ Control Language="C#" AutoEventWireup="true" CodeFile="Head.ascx.cs"
Inherits="Controls_Head" %>
<asp:Image ID="Image1" runat="server" ImageUrl="~/Images/head.JPG" />
<br/>
<img src='../Images/head.JPG' alt="测试" />
3、把用户控件拖放到根目录下的Default.aspx文件(位于根目录下)里,Default.aspx代码如下:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs"
Inherits="_Default" %>
<%@ Register Src="Controls/head.ascx" TagName="Head" TagPrefix="uc1" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>无标题页</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<uc1:head ID="Head1" runat="server" />
</div>
</form>
</body>
</html>
4、此时运行Default.aspx的效果如下:发现head.ascx中第二种写法<imgsrc='../Images/head.JPG' alt="aaa" />不能正确显示图片,通过改为“<img src='<%=Request.ApplicationPath%>/Images/head.JPG' alt="测试" />”,调试用浏览器查看是可以了,但在VS2005中的“设计”视图中,图片也还是不能显示。请问能两者都兼顾吗?
试试:
<asp:Image ID="Image1" runat="server" ImageUrl='<%= ResolveUrl("~/Images/head.JPG")%>' />
<br/>
<img src=<%= ResolveUrl("~/Images/head.JPG")%>' alt="测试" />
直接用根目录:<imgsrc='/Images/head.JPG' alt="aaa" />
<asp:Image id="img" runat="server" ImageUrl="~/Images/Head.jpg" />