2011-08-01 3 views
2

J'ai une application MVC 3, et dans certains .cshtml, je renvoie des images. Le problème est que lorsque je l'exécute en utilisant IIS, le serveur cherche au mauvais endroit pour l'image. (Le problème survient uniquement avec "vrai" IIS, pas avec IIS Express, et pas avec Cassini)MVC 3 recherche au mauvais endroit pour les images

Résultat: Si j'utilise IIS, j'obtiens des espaces réservés d'image au lieu de mes images. Si j'utilise IIS Express ou Cassini, je n'ai aucun problème.

I utilisé Process Monitor pour déterminer où le serveur était à la recherche de l'image, et il semble ignorer les paramètres du répertoire virtuel (il est à la recherche de l'image sous wwwroot, au lieu de dans le répertoire virtuel de mon application)

exemple de code à partir du fichier cshtml:

 

<ul>@foreach (var entity in this.Model) 
    {<li> 
       @Html.ActionLink(ShortDescription, "Index", "Search", new { entityName = entity.Value.UrlName }, null) 
       <img src="../../Content/themes/blue/EntityBullet.png" /> 
    </li>}</ul> 
 

Je parie que ce soit je manque une règle de routage, ou je fais quelque chose de mal avec la balise img. Des indices?

Répondre

5

Utilisez ce (en supposant que le dossier est Content directement sous la racine de votre site):

<img src="@Url.Content("~/Content/themes/blue/EntityBullet.png")" /> 
4

utiliser cet intérieur de votre attribut src dans la balise d'image:

<img src="@Url.Content("~/content/themes/blue/image.png")" alt="" /> 
Questions connexes