Asp.net 无法在Visual Studio 2012(IIS Express)中显示.svg文件

Asp.net 无法在Visual Studio 2012(IIS Express)中显示.svg文件,asp.net,visual-studio-2012,svg,iis-express,Asp.net,Visual Studio 2012,Svg,Iis Express,我正在尝试使用Visual Studio 2012、IIS Express v8.0和ASP.NET web表单在我的web应用程序中显示.svg文件 我已经尝试过的事情: 将.svg扩展添加到web.config 发生了什么事 根据con@user1429080的建议,有一个解决办法(althunk不是最干净的工作方式): 我的解决方法是在本地创建自己的httphandler,它重写了svg的内容类型 public class SvgHandler : IHttpHandler {

我正在尝试使用Visual Studio 2012、IIS Express v8.0和ASP.NET web表单在我的web应用程序中显示.svg文件

我已经尝试过的事情:

  • 将.svg扩展添加到web.config

  • 发生了什么事

    根据con@user1429080的建议,有一个解决办法(althunk不是最干净的工作方式):

    我的解决方法是在本地创建自己的httphandler,它重写了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();
        }
    }
    
    在web.config中,我添加了:

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

    您是否确保可以通过在浏览器中直接输入文件的URL来访问该文件?是的,我确认了,我正在将该信息添加到问题中@迪戈斯,你有试过这个把戏吗。看起来有点像黑客的解决办法,但可能值得一试…@user1429080就是这样做的!谢谢
    background: transparent url(images/svg/reports.svg) no-repeat scroll 0px 0px;
    
    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();
        }
    }
    
    <httpHandlers>
      <add verb="*" path="*.svg" type="SvgHandler" />
    </httpHandlers>