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

mmm*_*bop 16 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" />
Run Code Online (Sandbox Code Playgroud)

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

<img src="~/App_Themes/Default/images/two.gif" />
Run Code Online (Sandbox Code Playgroud)

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

<img src="../App_Themes/Default/images/two.gif" />
Run Code Online (Sandbox Code Playgroud)

dav*_*eps 24

如果要将常规img标记与~路径一起使用,则只需将runat="server"其作为属性添加到标记中(如常规服务器控件),即可解析路径.例如:

<img src="~/App_Themes/Default/images/two.gif" runat="server" /> 
Run Code Online (Sandbox Code Playgroud)

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


Chr*_*ete 6

我使用此语法从主页访问图像

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


lis*_*rts 5

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

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

  • +1,同样,@ mmmbop,解析HTML标签中的〜/你可以使用UrlHelper类(而不是切换到使用asp:图像控件)`<img rel="nofollow noreferrer" src ="<%= Url.Content("〜/ App_Themes /Default/images/two.gif")%>"/>` (3认同)