2016-12-26 67 views
5

我試着使用的Visual Studio 2012IIS快遞V8.0ASP .NET Web窗體顯示在我的web應用程序.SVG文件不能在Visual Studio 2012(IIS快遞)顯示.SVG文件

事我已經嘗試:

  1. 添加.SVG擴展WEB.CONFIG
<staticContent> 
    <remove fileExtension=".svg" /> 
    <mimeMap fileExtension=".svg" mimeType="image/svg+xml" /> 
</staticContent> 
  • 添加.SVG擴展C:\ Users \ UserName \ Documents \ IISExpress \ config \ applicationhost.config
  • <staticContent lockAttributes="isDocFooterFileName"> 
        ... 
        <mimeMap fileExtension=".svg" mimeType="image/svg+xml" /> 
        ... 
    
  • 複製圖像提供給瀏覽器的URL,並且它顯示優良。
  • enter image description here 4.在IIS下發佈網站,顯示正常。此外,我們有一個開發人員使用Visual Studio 2013,它使用IIS Express v8.5顯示正常。

    林加入.SVG爲圖標,使用span元件與具有作爲背景URL文件的一個類,所以我不能使用此解決方案:SVG files in VS2012

    這是風格類增加到跨度:

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

    發生了什麼?

    +0

    你確定你可以通過直接輸入網址訪問I文件t在瀏覽器中? – mason

    +0

    是的,我做了,即時將這些信息添加到問題! – DiegoS

    +1

    @DiegoS你在[這個答案](http://stackoverflow.com/a/26385901/1429080)中試過這個技巧。似乎有點駭人的解決方法,但可能值得嘗試... – user1429080

    回答

    1

    基於CON @ user1429080建議,有一個變通方法(altought不是它的工作原理最清晰的方式):

    我對這個解決方法是創建自己的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> 
    

    與此解決方案,您不必使用IIS表達,你可以只使用 常規發展服務器在Visual Studio 2010

    來源:Visual Studio Not Displaying SVG image as background