Loại MIME đúng cho favicon.ico?


140

Theo Cơ quan cấp số được gán Internet (IANA), tất cả các tệp .ico thuộc loại MIME image/vnd.microsoft.icon. ( Nguồn )

Ví dụ <link rel="icon" type="image/vnd.microsoft.icon" href="favicon.ico" />

Tuy nhiên, Paul Ailen hiểu biết về Internet , tuyên bố điều này là sai, và nó thực sự sẽ xảy ra image/x-icon. ( Nguồn )

Ví dụ <link rel="icon" type="image/x-icon" href="favicon.ico" />

Tôi biết bạn có thể thoát khỏi việc không bao gồm "loại" cho các tệp .ico, nhưng nếu bạn định đưa vào một tệp, thì nó phải là gì? Có thực sự có bất kỳ vấn đề với việc phục vụ nó như là loại IANA chính thức?


Lưu ý thận trọng: favicon.icocác tệp có thể không phải là tệp ".ico" đúng. Trang web công ty của tôi sử dụng png (được đặt tên là "favicon.ico") và phục vụ nó với loại "hình ảnh / png". Phục vụ nó với một trong các loại ".ico" được đề cập ở đây là CẢ HAI, vì nó khiến trình duyệt hiểu sai!
Dan H

Câu trả lời:


171

Khi bạn đang phục vụ một tệp .ico được sử dụng như một favicon, điều đó không thành vấn đề. Tất cả các trình duyệt chính nhận ra cả hai loại mime chính xác. Vì vậy, bạn có thể đặt:

<!-- IE -->
<link rel="shortcut icon" type="image/x-icon" href="favicon.ico" />
<!-- other browsers -->
<link rel="icon" type="image/x-icon" href="favicon.ico" />

hoặc tương tự với image/vnd.microsoft.icon, và nó sẽ hoạt động với tất cả các trình duyệt.

Lưu ý: Không có thông số kỹ thuật IANA cho loại MIME image/x-icon, do đó, có vẻ như nó không chính thức hơn một chút so với image/vnd.microsoft.icon.

Trường hợp duy nhất có sự khác biệt là nếu bạn đang cố sử dụng tệp .ico trong <img>thẻ (điều này khá bất thường). Dựa trên thử nghiệm trước đó, một số trình duyệt sẽ chỉ hiển thị các tệp .ico dưới dạng hình ảnh khi chúng được phục vụ với loại MIME image/x-icon. Các thử nghiệm gần đây hơn cho thấy: Chromium, Firefox và Edge đều ổn với cả hai loại nội dung, IE11 thì không. Nếu bạn có thể, chỉ cần tránh sử dụng icocác tập tin như hình ảnh, sử dụng png.


Tôi đã không chọn bất cứ điều gì ở bất cứ đâu, tôi đã cố gắng giải thích hai cách sử dụng: 1 - được sử dụng như favicon (không quan trọng là loại mime nào), 2 - được sử dụng làm img trong trang web (IE chỉ hiển thị chính xác với hình ảnh mimetype / x -icon).
mata

Bạn nói, bạn có thể sử dụng các tệp .ico với <img src=''>điều kiện chúng được phục vụ dưới dạng hình ảnh / x-hình ảnh bởi máy chủ web. Sau đó, bạn nói rằng nếu bạn sẽ sử dụng các tệp .ico làm hình ảnh trong các trang HTML, bạn nên đặt loại MIME thành hình ảnh / biểu tượng x .
Chuck Le Mông

Tuyệt quá. Ít nhất là nó có ý nghĩa bây giờ! Mặc dù vậy, tôi không thực sự quan tâm đến việc phục vụ các tệp .ico dưới dạng hình ảnh trong một trang web. Câu hỏi cụ thể là về việc sử dụng tệp .ico dưới dạng favicon. Nếu bạn viết lại câu trả lời của bạn, điều đó sẽ hữu ích hơn nhiều. Cảm ơn.
Chuck Le Mông

Theo wikipedia, hình ảnh / x-icon chỉ được tạo bởi Microsoft, image / vnd.microsoft.icon được đăng ký với IANA (nhưng không phải do chính Microsoft đăng ký).
mjaggard

10
FWIW, Google sử dụng hình ảnh / biểu tượng x cho hình đại diện của họ .
NateS

30

Tôi nghĩ rằng gốc rễ cho sự nhầm lẫn này được giải thích trong này bài viết wikipedia.

Mặc dù loại MIME đã đăng ký IANA cho các tệp ICO là image / vnd.microsoft.icon, nó đã được gửi cho IANA vào năm 2003 bởi một bên thứ ba và không được phần mềm Microsoft nhận ra, sử dụng biểu tượng hình ảnh / x thay thế.

Nếu ngay cả người phát minh định dạng ICO không sử dụng loại MIME chính thức, tôi cũng sẽ sử dụng image/x-icon.


3
Cuối cùng là một câu trả lời! Tuy nhiên, đây vẫn là loại MIME đã đăng ký IANA ... ngay cả khi chính Microsoft không sử dụng loại này. Kỳ dị.
Chuck Le Mông

3

Tôi đã nhận thấy rằng khi sử dụng type="image/vnd.microsoft.icon", favicon không xuất hiện khi trình duyệt không được kết nối với internet. Nhưng type="image/x-icon"hoạt động cho dù trình duyệt có thể kết nối với internet hay không. Khi phát triển, nhiều lúc tôi không kết nối được internet.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.