Die*_*goS 5 asp.net svg iis-express visual-studio-2012
我试图使用Visual Studio 2012,IIS Express v8.0和ASP .NET Web窗体在我的Web应用程序中显示.svg文件.
我已经尝试过的事情:
Run Code Online (Sandbox Code Playgroud)<staticContent> <remove fileExtension=".svg" /> <mimeMap fileExtension=".svg" mimeType="image/svg+xml" /> </staticContent>
Run Code Online (Sandbox Code Playgroud)<staticContent lockAttributes="isDocFooterFileName"> ... <mimeMap fileExtension=".svg" mimeType="image/svg+xml" /> ...
4.在IIS下发布站点,它显示正常.此外,我们有一个使用Visual Studio 2013的开发人员,它使用IIS Express v8.5显示正常.
我添加.svg作为图标,使用一个span具有文件的url作为背景的类的元素,所以我不能使用这个解决方案:VS2012中的SVG文件
这是添加到span的类的样式:
background: transparent url(images/svg/reports.svg) no-repeat scroll 0px 0px;
Run Code Online (Sandbox Code Playgroud)
发生了什么?
根据@user1429080的建议,有一个解决方法(尽管这不是最干净的工作方式):
我的解决方法是在本地创建我自己的 httphandler,它覆盖了 svg 的内容类型。
Run Code Online (Sandbox Code Playgroud)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 中我添加了:
Run Code Online (Sandbox Code Playgroud)<httpHandlers> <add verb="*" path="*.svg" type="SvgHandler" /> </httpHandlers>使用此解决方案,您不必使用 IIS Express,只需使用 Visual Studio 2010 中的常规开发服务器即可
来源:Visual Studio 不将 SVG 图像显示为背景