แก้ไขประเภท MIME สำหรับ favicon.ico หรือไม่


140

ตามการมอบหมายตัวเลขทางอินเทอร์เน็ต (IANA) ไฟล์. ico ทั้งหมดจะอยู่ภายใต้ประเภท MIMEimage/vnd.microsoft.iconตกอยู่ภายใต้ชนิด ( ที่มา )

เช่น <link rel="icon" type="image/vnd.microsoft.icon" href="favicon.ico" />

อย่างไรก็ตามผู้รู้ทางอินเทอร์เน็ตที่มีความชำนาญพอลไอริชอ้างว่าสิ่งนี้ผิดและจริง ๆ แล้วมันจะเป็นimage/x-iconเช่นนั้น (ที่มา )

เช่น <link rel="icon" type="image/x-icon" href="favicon.ico" />

ฉันรู้ว่าคุณสามารถหลีกเลี่ยงได้โดยไม่รวม "ประเภท" สำหรับไฟล์. ico แต่ถ้าคุณจะรวมไฟล์หนึ่งไว้มันควรจะเป็นอะไร? จริง ๆ แล้วมีปัญหากับการแสดงเป็นประเภท IANA อย่างเป็นทางการหรือไม่?


ข้อควรระวัง: favicon.icoไฟล์อาจไม่ใช่ไฟล์ ".ico" จริง ไซต์องค์กรของฉันใช้ png (ชื่อ "favicon.ico") และให้บริการด้วยประเภท "image / png" การแสดงผลด้วยประเภท ".ico" ที่กล่าวถึงที่นี่เป็นทั้งที่ไม่ถูกต้องเนื่องจากทำให้เบราว์เซอร์ตีความผิด!
Dan H

คำตอบ:


171

เมื่อคุณให้บริการไฟล์. ico ที่จะใช้เป็น favicon ก็ไม่เป็นไร เบราว์เซอร์หลักทั้งหมดรู้จักประเภท mime อย่างถูกต้อง ดังนั้นคุณสามารถใส่:

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

หรือเหมือนกันกับ image/vnd.microsoft.iconและมันจะทำงานกับเบราว์เซอร์ทั้งหมด

หมายเหตุ: ไม่มีข้อมูลจำเพาะของ IANA สำหรับประเภท MIME image/x-iconดังนั้นจึงดูเหมือนว่ามันไม่เป็นทางการมากกว่าimage/vnd.microsoft.iconที่ไม่เป็นทางการมากกว่า

กรณีเดียวที่มีความแตกต่างคือถ้าคุณพยายามใช้ไฟล์. ico ใน<img>แท็ก (ซึ่งค่อนข้างผิดปกติ) อ้างอิงจากการทดสอบก่อนหน้านี้เบราว์เซอร์บางส่วนเท่านั้นที่จะแสดง .ico image/x-iconไฟล์เป็นภาพเมื่อพวกเขาถูกเสิร์ฟกับไมม์ชนิด การทดสอบล่าสุดแสดงให้เห็นว่า: Chromium, Firefox และ Edge สามารถใช้งานได้กับเนื้อหาทั้งสองประเภท IE11 ไม่ใช่ หากคุณสามารถเพียงแค่หลีกเลี่ยงการใช้icoไฟล์รูปภาพ, pngการใช้งาน


ฉันไม่ได้เลือกอะไรเลยฉันพยายามอธิบายสอง usecases: 1 - ใช้เป็น favicon (ไม่สำคัญว่า mime แบบไหน) 2 - ใช้เป็น img ภายในเว็บเพจ (IE แสดงอย่างถูกต้องด้วย mimetype image / x -ไอคอน).
mata

คุณบอกว่าคุณสามารถใช้ไฟล์. ico ในกรณีที่<img src=''>พวกเขาทำหน้าที่เป็นภาพ / x-imageโดยเว็บเซิร์ฟเวอร์ แล้วคุณบอกว่าถ้าคุณกำลังจะใช้ไฟล์ .ico เป็นภาพในหน้าเว็บ HTML คุณควรตั้งค่าชนิดไมม์เพื่อภาพ / x-ไอคอน
Chuck Le Butt

ยิ่งใหญ่ อย่างน้อยก็สมเหตุสมผลแล้ว! แต่ฉันไม่ได้สนใจที่จะให้บริการไฟล์. ico เป็นภาพภายในเว็บไซต์ คำถามนี้เกี่ยวกับการใช้ไฟล์. ico เป็น favicons โดยเฉพาะ หากคุณใช้ถ้อยคำใหม่คำตอบของคุณจะเป็นประโยชน์มากขึ้น ขอบคุณ
Chuck Le Butt

รูปภาพ / ไอคอน x ถูกสร้างขึ้นโดย Microsoft รูปภาพ / vnd.microsoft.icon นั้นลงทะเบียนกับ IANA (แต่ไม่ได้ลงทะเบียนโดย Microsoft เอง)
mjaggard

10
FWIW Google ใช้ภาพ / x-ไอคอนของพวกเขาfavicon
NateS

30

ผมคิดว่ารากของความสับสนนี้จะอธิบายได้ดีในนี้บทความวิกิพีเดีย

ในขณะที่ประเภท MIME ที่ลงทะเบียน IANA สำหรับไฟล์ ICO คืออิมเมจ / vnd.microsoft.icon แต่ถูกส่งไปยัง IANA ในปี 2003 โดยบุคคลที่สามและไม่ได้รับการยอมรับจากซอฟต์แวร์ Microsoft ซึ่งใช้อิมเมจ / x-icon แทน

หากแม้แต่นักประดิษฐ์ในรูปแบบ ICO ก็ไม่ได้ใช้ประเภท MIME อย่างเป็นทางการฉันก็จะใช้image/x-iconเช่นกัน


3
ในที่สุดคำตอบ! อย่างไรก็ตามมันยังคงเป็นประเภท MIME ที่ลงทะเบียนโดย IANA ... แม้ว่า Microsoft เองจะไม่ใช้มัน แปลก.
Chuck Le Butt

3

ฉันสังเกตว่าเมื่อใช้type="image/vnd.microsoft.icon"favicon จะไม่ปรากฏขึ้นเมื่อเบราว์เซอร์ไม่ได้เชื่อมต่อกับอินเทอร์เน็ต แต่type="image/x-icon"ทำงานได้ไม่ว่าเบราว์เซอร์สามารถเชื่อมต่ออินเทอร์เน็ตได้หรือไม่ เมื่อพัฒนาบางครั้งฉันก็ไม่ได้เชื่อมต่อกับอินเทอร์เน็ต

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.