2016-12-26 2 views
5

Im essayant d'afficher .svg fichiers dans mon application Web à l'aide Visual Studio 2012, IIS v8.0 express et Web Forms ASP .NET.Impossible d'afficher les fichiers .svg dans Visual Studio 2012 (IIS Express)

choses que j'ai déjà essayé:

  1. Ajout l'extension .svg à web.config
<staticContent> 
    <remove fileExtension=".svg" /> 
    <mimeMap fileExtension=".svg" mimeType="image/svg+xml" /> 
</staticContent> 
  1. Ajout l'extension .svg à C: \ Utilisateurs \ NomUtilisateur \ Documents \ IISExpress \ config \ applicationhost.config
<staticContent lockAttributes="isDocFooterFileName"> 
    ... 
    <mimeMap fileExtension=".svg" mimeType="image/svg+xml" /> 
    ... 
  1. Copier l'URL de l'image au navigateur, et il affiche bien.

enter image description here 4. Publier le site sous IIS, et il affiche bien. En outre, nous avons un développeur en utilisant Visual Studio 2013 et il affiche bien en utilisant IIS Express v8.5.

Im ajoutant le .svg sous forme d'icônes, en utilisant un élément span avec une classe qui a comme arrière-plan avec url du fichier, donc je ne peux pas utiliser cette solution: SVG files in VS2012

C'est la style de classe ajouté à la plage:

background: transparent url(images/svg/reports.svg) no-repeat scroll 0px 0px; 

Que se passe-t-il?

+0

Est-ce que vous assurez-vous que vous pouvez accéder au fichier en saisissant directement l'URL i t dans le navigateur? – mason

+0

Oui je l'ai fait, j'ajoute cette information à la question! – DiegoS

+1

@DiegoS Avez-vous essayé l'astuce dans [cette réponse] (http://stackoverflow.com/a/26385901/1429080).On dirait un peu d'une solution de contournement hackish, mais pourrait être utile d'essayer ... – user1429080

Répondre

1

Basé con @ suggestion user1429080, il y a une solution de contournement (altought n'est pas la plus propre façon dont il fonctionne):

Ma solution pour cela était de créer ma propre HttpHandler localement qui écrasait le type de contenu pour svg.

public class SvgHandler : IHttpHandler 
{ 

    public bool IsReusable 
    { 
     get { return false; } 
    } 

    public void ProcessRequest(HttpContext context) 
    { 
     context.Response.ContentType = "image/svg+xml"; 
     context.Response.BinaryWrite(File.ReadAllBytes(context.Request.PhysicalPath)); 
     context.Response.End(); 
    } 
} 

et web.config i ajouté:

<httpHandlers> 
    <add verb="*" path="*.svg" type="SvgHandler" /> 
</httpHandlers> 

avec cette solution, vous ne devez pas utiliser IIS exprimer, vous pouvez simplement utiliser le serveur de développement régulier en studio visuel 2010

Source: Visual Studio Not Displaying SVG image as background