2016-12-26 14 views
5

Im cố gắng để hiển thị .svg tập tin trong ứng dụng web của tôi sử dụng Visual Studio 2012, IIS tốc v8.0ASP NET Web Forms.Không thể hiển thị .svg file trong Visual Studio 2012 (IIS Express)

Những điều tôi đã cố gắng:

  1. Thêm phần mở rộng .svg để web.config
<staticContent> 
    <remove fileExtension=".svg" /> 
    <mimeMap fileExtension=".svg" mimeType="image/svg+xml" /> 
</staticContent> 
  1. Thêm phần mở rộng .svg để C: \ Users \ UserName \ Documents \ IISExpress \ config \ applicationhost.config
<staticContent lockAttributes="isDocFooterFileName"> 
    ... 
    <mimeMap fileExtension=".svg" mimeType="image/svg+xml" /> 
    ... 
  1. Sao chép URL của hình ảnh cho trình duyệt, và nó hiển thị tốt.

enter image description here 4. Xuất bản trang web dưới IIS và hiển thị tốt. Ngoài ra, chúng tôi có nhà phát triển sử dụng Visual Studio 2013 và thiết bị hiển thị tốt bằng cách sử dụng IIS Express v8.5.

Im thêm .svg như biểu tượng, sử dụng một yếu tố span với một lớp học có làm nền với url của tập tin, vì vậy tôi không thể sử dụng giải pháp này: SVG files in VS2012

Đây là phong cách của lớp được thêm vào khoảng thời gian:

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

Điều gì đang xảy ra?

+0

Bạn có chắc chắn rằng bạn có thể truy cập tệp bằng cách nhập trực tiếp URL vào i t trong trình duyệt? – mason

+0

Có, tôi đã thêm thông tin đó vào câu hỏi! – DiegoS

+1

@DiegoS Bạn đã thử mẹo trong [câu trả lời này] (http://stackoverflow.com/a/26385901/1429080).Có vẻ như một chút của một cách giải quyết hackish, nhưng có thể là giá trị cố gắng ... – user1429080

Trả lời

1

Dựa con @ user1429080 gợi ý, có một cách giải quyết (altought không phải là cách sạch nó hoạt động):

workaround của tôi cho điều này là để tạo ra HttpHandler của riêng tôi tại địa phương mà ghi đè lên các content-type cho 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(); 
    } 
} 

và trong web.config tôi nói thêm:

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

với giải pháp này bạn không cần phải sử dụng IIS thể hiện, bạn chỉ có thể sử dụng máy chủ phát triển đều đặn trong visual studio 2010

Nguồn: Visual Studio Not Displaying SVG image as background

Các vấn đề liên quan