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" />
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...
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.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;"/>
$(".selector").attr ('src', "Content/themes/base/images/img.png");
O importante é que você não tem " / " no início do seu novo src.
byte[] imageArray = System.IO.File.ReadAllBytes(Server.MapPath("~/Images/Upload_Image.png"));
string base64ImageRepresentation = Convert.ToBase64String(imageArray);