Img HTML e ASP.NET imagens e localizações relativas

Qual é a forma correcta de referenciar uma imagem em ASP.NET para uma missão ao vivo no IIS?

as seguintes obras em dev e produção:

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

o seguinte não funciona em nenhum dos dois: (por que não?)

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

as seguintes obras em dev mas não em produção:

<img src="../App_Themes/Default/images/two.gif" />
Author: mmmbop, 2011-03-04

5 answers

Se quiser usar uma marca regular img com a localização ~, pode apenas adicionar runat="server" à marca como um atributo (como os controlos regulares do servidor) e a localização será resolvida. p. ex.:

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

Para a sua segunda parte, é o ../ referência de imagem que aparece em mais de uma página, por exemplo um controle de usuário ou página principal (etc), de modo que você pode estar usando-o em diferentes níveis de pasta...

 23
Author: davidsleeps, 2011-03-04 07:53:36

O ~ só funcionará num controlo do servidor como o or . Isto diz ASP.Net para inserir o caminho da aplicação. Em algum momento isso é apenas"/", mas se a sua aplicação não é o diretório raiz do site, ele irá incluir o caminho em que ele está. A tag img é apenas html e não será alterada por ASP.Net, então o navegador recebe o caminho "~/App_ themes/Default/images/two.gif " e não sabe como lê-lo.

Não sei porque é que o último exemplo funciona em dev, mas não na produção. Pode ser que tem algo a ver com ter a aplicação no diretório raiz em dev, mas em um sub diretório em produção.
 5
Author: liserdarts, 2011-03-04 07:15:36

Uso esta sintaxe para aceder a imagens das páginas principais

<img src="<%=ResolveUrl("~/Content/Images/error_img.jp")%>" width="350" style="padding-right: 15px; padding-top: 20px;"/>
 5
Author: Chris OnDaRocks, 2017-12-17 05:28:00
Isto funcionou comigo.

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

O importante é que você não tem " / " no início do seu novo src.

 0
Author: hugo bourret-desmarais, 2016-08-25 13:27:12
byte[] imageArray = System.IO.File.ReadAllBytes(Server.MapPath("~/Images/Upload_Image.png"));

string base64ImageRepresentation = Convert.ToBase64String(imageArray);
 0
Author: nikunjM, 2017-01-25 20:37:11