Poprawny typ MIME dla favicon.ico?


140

Według organizacji Internet Assigned Numbers Authority (IANA) wszystkie pliki .ico należą do typu MIME image/vnd.microsoft.icon. ( Źródło )

Na przykład <link rel="icon" type="image/vnd.microsoft.icon" href="favicon.ico" />

Jednak sprytny guru internetu, Paul Irish , twierdzi, że to jest złe i że faktycznie tak będzie image/x-icon. ( Źródło )

Na przykład <link rel="icon" type="image/x-icon" href="favicon.ico" />

Wiem, że możesz uciec od niepodawania „typu” dla plików .ico, ale jeśli zamierzasz dołączyć taki, który powinien być? Czy są jakieś problemy z podawaniem jej jako oficjalnego typu IANA?


Uwaga: favicon.icopliki mogą nie być plikami „.ico”. Moja witryna firmowa używa pliku png (o nazwie „favicon.ico”) i obsługuje go z typem „image / png”. Podawanie go z jednym z wymienionych tutaj typów „.ico” było OBA nieprawidłowe, ponieważ powodowało błędną interpretację przeglądarki!
Dan H

Odpowiedzi:


171

Kiedy udostępniasz plik .ico, który ma być używany jako favicon, nie ma to znaczenia. Wszystkie główne przeglądarki poprawnie rozpoznają oba typy MIME. Możesz więc umieścić:

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

lub to samo image/vnd.microsoft.iconi będzie działać we wszystkich przeglądarkach.

Uwaga: nie ma specyfikacji IANA dla typu MIME image/x-icon, więc wygląda na to, że jest trochę bardziej nieoficjalna niż image/vnd.microsoft.icon.

Jedynym przypadkiem, w którym występuje różnica, jest próba użycia pliku .ico w <img>tagu (co jest dość nietypowe). Opierając się na poprzednich testach, niektóre przeglądarki wyświetlały pliki .ico jako obrazy tylko wtedy, gdy były wyświetlane z typem MIME image/x-icon. Nowsze testy pokazują: Chromium, Firefox i Edge są w porządku z obydwoma typami treści, IE11 nie. Jeśli możesz, po prostu unikaj używania icoplików jako obrazów, użyj png.


Nigdzie nie wybrałem, próbowałem wyjaśnić dwa przypadki użycia: 1 - używany jako favicon (nie ma znaczenia, który typ MIME), 2 - używany jako img na stronie internetowej (IE wyświetla to tylko poprawnie z obrazem typu mime / x) -Ikona).
mata

Mówisz, że możesz używać plików .ico w <img src=''>pod warunkiem, że są one obsługiwane jako obraz / x-image przez serwer sieciowy. Następnie mówisz, że jeśli zamierzasz używać plików .ico jako obrazów na stronach HTML, powinieneś ustawić typ MIME na image / x-icon .
Chuck Le Butt,

Wspaniały. Przynajmniej ma to teraz sens! Nie jestem jednak zainteresowany udostępnianiem plików .ico jako obrazów w witrynie internetowej. Pytanie dotyczy w szczególności używania pliku .ico jako faviconów. Jeśli przeformułujesz swoją odpowiedź, byłoby to znacznie bardziej pomocne. Dzięki.
Chuck Le Butt

Według Wikipedii image / x-icon został właśnie wymyślony przez Microsoft, image / vnd.microsoft.icon jest zarejestrowany w IANA (ale nie jest zarejestrowany przez Microsoft).
mjaggard

10
FWIW, Google używa obrazu / X-ikona dla ich favicon .
NateS

30

Myślę, że źródło tego zamieszania jest dobrze wyjaśnione w tym artykule na Wikipedii.

Chociaż typ MIME zarejestrowany przez IANA dla plików ICO to image / vnd.microsoft.icon, został on przesłany do IANA w 2003 r. Przez stronę trzecią i nie jest rozpoznawany przez oprogramowanie firmy Microsoft, które zamiast tego używa image / x-icon.

Jeśli nawet wynalazca formatu ICO nie używa oficjalnego typu MIME, ja image/x-iconteż użyję.


3
Wreszcie odpowiedź! Jednak nadal jest to typ MIME zarejestrowany przez IANA ... nawet jeśli sam Microsoft go nie używa. Dziwne.
Chuck Le Butt

3

Zauważyłem, że podczas używania type="image/vnd.microsoft.icon"favicon nie pojawia się, gdy przeglądarka nie jest połączona z Internetem. Ale type="image/x-icon"działa niezależnie od tego, czy przeglądarka może połączyć się z Internetem, czy nie. Podczas programowania czasami nie mam połączenia z Internetem.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.