Asp.net 无法在Visual Studio 2012(IIS Express)中显示.svg文件
我正在尝试使用Visual Studio 2012、IIS Express v8.0和ASP.NET web表单在我的web应用程序中显示.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 {
发生了什么事 根据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>