HTML img和ASP.NET图像及相关路径

HTML img和ASP.NET图像及相关路径,asp.net,image,relative-path,Asp.net,Image,Relative Path,在IIS上实时部署时,在ASP.NET中引用映像的正确方法是什么 开发和生产中的以下工作: <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.g

在IIS上实时部署时,在ASP.NET中引用映像的正确方法是什么

开发和生产中的以下工作:

<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" />

以下两种方法都不适用:(为什么不?)


以下内容在开发中可用,但在生产中不可用:

<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" />

该~仅在服务器控件上工作,例如
。这将告诉ASP.Net插入应用程序路径。有时这只是
“/”
,但如果你的应用程序不是网站的根目录,它将包括它所在的路径。
img
标记只是html,它不会被ASP.Net更改,因此浏览器获取路径
“~/App\u Themes/Default/images/two.gif”
,并且不知道如何读取它


我不知道为什么最后一个示例在dev中有效,但在生产中无效。这可能与应用程序在dev的根目录中,但在生产环境的子目录中有关。

如果您想在
~
路径中使用常规
img
标记,只需将
runat=“server”
作为属性添加到标记中(如常规服务器控件),即可解析路径。e、 g:

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


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

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

<img src="<%=ResolveUrl("~/Content/Images/error_img.jp")%>" width="350" style="padding-right: 15px; padding-top: 20px;"/>
“width=“350”style=“padding right:15px;填充顶部:20px;"/>
这对我很有效

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


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

你可以看看我的答案。我已经用C语言解决了这个问题。
byte[] imageArray = System.IO.File.ReadAllBytes(Server.MapPath("~/Images/Upload_Image.png"));

string base64ImageRepresentation = Convert.ToBase64String(imageArray);

您确定在生产环境中部署了映像吗?@映像与开发环境的路径相同。?+1,另外,@mmmbop,要解析~/在HTML标记中,您可以使用UrlHelper类(而不是切换到使用asp:image控件)
“/>
Nice,它对网站的整体性能有影响吗?@Tanveer它基本上没有影响。控件将经历控件生命周期。也就是说,您可能需要添加大量图像才能看到任何差异。