在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" />
如果你想使用带有img
路径的常规~
标签,你可以将runat="server"
作为属性添加到标签中(就像常规服务器控件一样)并且路径将被解析。例如:
<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;"/>
〜只适用于服务器控件,如或。这告诉ASP.Net插入应用程序路径。有时这只是“/”,但如果你的应用程序不是网站的根目录,它将包含它所在的路径.img标签只是html,它不会被ASP.Net改变,所以浏览器获取路径“〜/ App_Themes / Default / images / two.gif”并且不知道如何阅读它。
我不知道为什么最后一个例子在dev中工作但在生产中不工作。它可能与将应用程序放在dev的根目录中但在生产中的子目录中有关。
这对我有用
$(“。selector”)。attr('src',“Content / themes / base / images / img.png”);
重要的是你在新的src开头没有“/”。
byte[] imageArray = System.IO.File.ReadAllBytes(Server.MapPath("~/Images/Upload_Image.png"));
string base64ImageRepresentation = Convert.ToBase64String(imageArray);