Solución:
Solución 1:
A partir de su seguimiento de Fiddler, parece que está sirviendo sus páginas utilizando el servidor web de Visual Studio integrado:
Server: ASP.NET Development Server/10.0.0.0
Si esto estuviera siendo servido por IIS7, veríamos:
Server: Microsoft-IIS/7.5
El servidor web integrado de Visual Studio solo tiene un conjunto limitado de tipos de mime que puede servir y no tiene conocimiento de los tipos de mime que establezca para IIS7. Escribí una respuesta a un problema similar en Stack Overflow hace un tiempo:
Configuración de tipos MIME mediante ASP.NET Development Server
El servidor integrado está sirviendo a su .svg
archivar como:
Content-Type: application/octet-stream
Esto es probablemente lo que hace que el navegador solicite la descarga.
En Visual Studio, compruebe que está utilizando IIS Express abriendo las propiedades del proyecto de su sitio y seleccionando la pestaña “Web” de la lista de pestañas verticales:
Si no tiene IIS 7.5 Express instalado, puede obtenerlo desde aquí:
http://www.microsoft.com/download/en/details.aspx?id=1038
Necesitará Visual Studio 2010 Service Pack 1 para aprovechar al máximo:
http://support.microsoft.com/kb/983509
Soporte IIS Express
Visual Studio 2010 SP1 le permite utilizar Internet Information Services (IIS) 7.5 Express como servidor de alojamiento local para el sitio web y los proyectos de aplicaciones web.
Nota IIS 7.5 Express no se incluye en SP1 y debe descargarlo por separado. Para obtener más información, visite el siguiente blog: http://weblogs.asp.net/scottgu/archive/2011/01/03/vs-2010-sp1-beta-and-iis-developer-express.aspx
Cuando haya hecho eso, puede agregar el .svg
tipo mime al de su aplicación web.config
expediente:
<configuration>
<system.webServer>
<staticContent>
<mimeMap fileExtension=".svg" mimeType="image/svg+xml" />
</staticContent>
</system.webServer>
</configuration>
Solucion 2:
Como se mencionó anteriormente, Cassini ignora estas configuraciones en web.config, por lo que uno tiene que usar IIS Express en su lugar (en la configuración del proyecto VS) https://stackoverflow.com/questions/5924647/setting-mime-types-using-the-asp- servidor de desarrollo de red
Para obtener más información sobre cómo configurar los tipos MIME usando la interfaz de usuario del administrador o usando web.config para IIS o IIS Express, consulte: http://4rapiddev.com/tips-and-tricks/add-mime-type-flv-mp4- in-iis-for-a-website-or-global / y http://4rapiddev.com/tips-and-tricks/add-mime-type-flv-mp4-to-web-config-in-iis-7 /
Solución 3:
He usado la respuesta de Kev, por:
- Instalación de IIS 8.0 Express desde el instalador de plataforma web
- Cambiar las propiedades del proyecto para usar IIS Express y crear un directorio virtual para él
- Añadiendo web.config’s configuración → system.webServer
<staticContent>
<remove fileExtension=".svg" />
<mimeMap fileExtension=".svg" mimeType="image/svg+xml" />
</staticContent>
Solución 4:
Mi solución para esto fue crear mi propio httphandler localmente que sobrescribió el tipo de contenido para 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();
}
}
y en web.config agregué:
<httpHandlers>
<add verb="*" path="*.svg" type="SvgHandler" />
</httpHandlers>
con esta solución no tiene que usar IIS express, solo puede usar el servidor de desarrollo normal en visual studio 2010