HTML img和ASP.NET Image和相对路径

时间:2011-03-04 07:06:52

标签: asp.net image relative-path

在ASP.NET中引用图像以在IIS上进行实时部署的正确方法是什么?

以下适用于开发和制作:

<asp:ImageButton ID="ibnEdit" runat="server" OnClick="ibnEdit_Click" ImageUrl="~/App_Themes/Default/images/one.png" Visible="false" ToolTip="Edit" />

以下两者都不起作用:(为什么不呢?)

<img src="~/App_Themes/Default/images/two.gif" />

以下适用于开发但不适用于生产:

<img src="../App_Themes/Default/images/two.gif" />

6 个答案:

答案 0 :(得分:23)

如果您想使用带有img路径的常规~标记,您只需将runat="server"添加到标记中作为属性(如常规服务器控件),路径将得到解决。 e.g:

<img src="~/App_Themes/Default/images/two.gif" runat="server" /> 

对于你的第二部分,是../ image引用出现在多个页面上,例如用户控件或母版页(等),以便你可能在不同的文件夹级别使用它...

答案 1 :(得分:6)

我使用此语法来访问母版页中的图像

<img src="<%=ResolveUrl("~/Content/Images/error_img.jp")%>" width="350" style="padding-right: 15px; padding-top: 20px;"/>

答案 2 :(得分:5)

〜仅适用于服务器控件,如或。这告诉ASP.Net插入应用程序路径。有时这只是“/”,但如果你的应用程序不是网站的根目录,它将包含它所在的路径.img标签只是html,它不会被ASP.Net改变,所以浏览器获取路径“〜/ App_Themes / Default / images / two.gif”并且不知道如何阅读它。

我不知道为什么最后一个例子在dev中工作但在生产中不工作。它可能与将应用程序放在dev的根目录中但在生产中的子目录中有关。

答案 3 :(得分:0)

这对我有用

$(“。selector”)。attr('src',“Content / themes / base / images / img.png”);

重要的是你在新的src开头没有“/”。

答案 4 :(得分:0)

byte[] imageArray = System.IO.File.ReadAllBytes(Server.MapPath("~/Images/Upload_Image.png"));

string base64ImageRepresentation = Convert.ToBase64String(imageArray);

答案 5 :(得分:0)

您可以调查我的答案。我已经使用C#语言解决了该问题。 Why can't I do <img src="C:/localfile.jpg">?