2011-10-14 32 views
10

Tôi có một trang web SharePoint tham chiếu đến một tập tin SVG lưu trong RootFolder của một danh sách SharePoint bên trong thẻ img:Chrome không tải SVG tập tin như hình ảnh/svg + xml

<img src='http://localhost/Lists/MyList/1/1.svg' type='image/svg+xml' /> 

Hình ảnh được hiển thị chính xác trong IE9 trên máy tính để bàn cũng như trên các thiết bị iOS (Safari). Tuy nhiên, trong Chrome trên Windows (tôi đang sử dụng v14 tại thời điểm này) nó không hiển thị. Thay vào đó nó làm biểu tượng hình ảnh bị hỏng.

Tab mạng trong Chrome cho thấy tệp 1.svg là được tải xuống dưới dạng ứng dụng/octet-stream (và do đó hiển thị không chính xác). Tôi cần thay đổi gì để Chrome nhận dạng đúng loại MIME (như được chỉ định trong thẻ)? Nó có thể là một lỗi trong Chrome (như đề xuất trong this SO answer)? Nếu có, có một công việc xung quanh để tải tệp SVG theo cách khác (ví dụ: thẻ nhúng có thể) không?

Lưu ý rằng trình gỡ lỗi của IE (F12) xác định chính xác loại là hình ảnh/svg + xml và do đó hiển thị hình ảnh như mong đợi.

Chỉnh sửa: Vì nó có vẻ là vấn đề phía máy chủ (nhờ @robertc) Tôi đã thêm thực tế là tệp được SharePoint phân phát, nghi ngờ rằng SharePoint có thể không nhận dạng loại MIME.

+0

Bạn đang sử dụng máy chủ web nào? – robertc

+0

IIS 7 trên Windows 7 hiện tại (mặc dù nó cuối cùng sẽ được triển khai cho WS 2008 R2). Tôi đã thêm kiểu MIMI vào IIS để sửa lỗi nhận dạng luồng trong IE 9 và iOS. –

Trả lời

9

Không có thuộc tính type trên phần tử img, bạn cần đặt loại MIME chính xác trên máy chủ. Tôi nghĩ rằng nó chỉ hoạt động trong IE vì nó làm nội dung đánh hơi.

On IIS7 và ở trên, bạn có thể chỉ định loại ánh xạ MIME trong file web.config trong system.webServer phần:

<staticContent> 
    <mimeMap fileExtension=".svg" mimeType="image/svg+xml"/> 
</staticContent> 

Sau đó nó sẽ hoạt động trong tất cả các trình duyệt, nhưng bạn có thể cần phải làm mới có hiệu lực (Ctrl + F5) để yêu cầu họ yêu cầu lại tệp.

+0

Tôi gặp lỗi (Lỗi HTTP 500.19) khi tôi thêm dòng này vào web.config vì loại đã được xác định trong cài đặt MIME Type của IIS. Nó cũng hoạt động chính xác trên iPad (trình duyệt không phải IE). –

+0

@PhilippSchmid Tôi sẽ xóa nó ở cấp độ máy chủ, theo cách đó bạn sẽ không phải nhớ tiếp tục làm việc đó khi bạn triển khai. – robertc

+0

@PhilippSchmid [Đây là một trang ví dụ] (http://www.boogdesign.com/examples/svg/svg-as-image-testcase.html), nếu hình ảnh đang tải chính xác trên đó thì bạn có thể chắc chắn đó là của bạn cấu hình máy chủ và không phải trình duyệt đó là vấn đề. – robertc

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