web-dev-qa-db-fra.com

HTML img et ASP.NET Image et chemins relatifs

Quelle est la bonne façon de référencer une image dans ASP.NET pour un déploiement en direct sur IIS?

Les travaux suivants en développement et production:

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

Ce qui suit ne marche pas non plus: (pourquoi pas?)

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

Les travaux suivants en dev mais pas en production:

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

Si vous souhaitez utiliser une balise img régulière avec le chemin ~, vous pouvez simplement ajouter runat="server" dans la balise en tant qu'attribut (comme des commandes de serveur normales) et le chemin sera résolu. par exemple:

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

Pour la deuxième partie, la référence ../image apparaît-elle sur plusieurs pages, par exemple un contrôle utilisateur ou une page maître (etc.), de sorte que vous puissiez l’utiliser à différents niveaux de dossier ...

23
davidsleeps

J'utilise cette syntaxe pour les images d'accès à partir de pages maîtres

<img src="<%=ResolveUrl("~/Content/Images/error_img.jp")%>" width="350" style="padding-right: 15px; padding-top: 20px;"/>
6
Chris Rosete

Le ~ ne fonctionnera que sur un contrôle serveur tel que ou. Cela indique à ASP.Net d'insérer le chemin de l'application. Parfois, il ne s’agit que de "/", mais si votre application n’est pas le répertoire racine du site Web, elle inclut le chemin dans lequel elle se trouve. "~/App_Themes/Default/images/two.gif" et ne sait pas comment le lire.

Je ne sais pas pourquoi le dernier exemple fonctionne en dev mais pas en production. Cela peut avoir quelque chose à voir avec le fait que l’application se trouve dans le répertoire racine dans dev mais dans un sous-répertoire en production.

5
liserdarts
byte[] imageArray = System.IO.File.ReadAllBytes(Server.MapPath("~/Images/Upload_Image.png"));

string base64ImageRepresentation = Convert.ToBase64String(imageArray);
0
nikunjM

Cela a fonctionné pour moi

$ (".sélecteur"). attr ('src', "Contenu/thèmes/base/images/img.png");

L'important est que vous n'ayez pas "/" au début de votre nouveau code src.

0