Favicons - แนวทางปฏิบัติที่ดีที่สุด


107

ฉันพยายามเข้าใจขนาดและรูปแบบต่างๆที่จำเป็นสำหรับ Favicons ไอคอน Touch และตอนนี้ไอคอนกระเบื้องด้วย

ฉันได้อ่านโพสต์นี้: http://www.jonathantneal.com/blog/understand-the-favicon แต่ฉันก็ยังงงอยู่บ้างว่าจะใช้อะไรซึ่งจะดูดีพอสมควรในทุกอุปกรณ์และเบราว์เซอร์> = IE8 .

ฉันคิดว่าฉันควรสร้างสิ่งต่อไปนี้:

ICO
favicon.ico (32x32)

PNG
favicon.png (96x96)

กระเบื้องไอคอน
tileicon.png (144x144)

ไอคอน Apple Touch
apple-touch-icon-precomposed.png (152x152)
ตามhttps://github.com/h5bp/html5-boilerplate/issues/1367

... แล้วใช้รหัสนี้เพื่อให้บริการพวกเขา?

<link rel="apple-touch-icon" href="path/to/touchicon.png">
<link rel="icon" href="path/to/favicon.png">
<!--[if IE]><link rel="shortcut icon" href="path/to/favicon.ico"><![endif]-->
<!-- or, set /favicon.ico for IE10 win -->
<meta name="msapplication-TileColor" content="#D83434">
<meta name="msapplication-TileImage" content="path/to/tileicon.png">

ฉันขาดอะไรไปหรือเปล่า?

ฉันไม่ชัดเจนว่าจะครอบคลุม IE 10 หรือไม่


สำหรับคำตอบที่ดีที่สุดโปรดดูที่เว็บไซต์Apple
Ruub

1
เว็บไซต์ของ apple ในขณะที่เขียนมีข้อมูลที่ไม่สมบูรณ์และขาดหายไปเกี่ยวกับภาพหน้าจอเริ่มต้นและอาจจะมากกว่านั้น
Muhammad Rehan Saeed

ว้าว - มีรายละเอียดอะไรมากมายที่นี่ หากคุณต้องการคำตอบที่กระชับและรวดเร็วดูstackoverflow.com/a/45301651/661584อาจช่วยได้ ขอบคุณ
MemeDeveloper

คำตอบ:


115

Favicon เป็นวิธีที่ซับซ้อนกว่าที่คิด 10 ปีที่แล้วfavicon.icoเป็นสิ่งของที่จำเป็นเท่านั้น จากนั้นมีไอคอนสัมผัสจากนั้นไอคอนสัมผัสหลายอันจะขึ้นอยู่กับความละเอียดหน้าจออุปกรณ์ iOS ต่างๆจากนั้นจะมีไอคอนไทล์สำหรับ Windows ...

คำตอบบางส่วนที่นี่ครอบคลุมมาก - และล้นหลาม (ทั้งหมดนี้สำหรับไอคอน Fav เท่านั้น?) แต่พวกเขาล้มเหลวในการแสดงให้เห็นว่าไอคอน 310x310 กระเบื้องสำหรับ Windows จะแนะนำให้เป็น 558x558 และเนื่องจากพวกเขาเขียนไม่กี่เดือนที่ผ่านมาพวกเขาไม่ได้พูดถึงล่าสุดที่ประจักษ์สำหรับ Android Chrome M39หรือไอคอน SVG แท็บตรึงสำหรับ Safari บน OS X El Capitan

การออกแบบต่อแพลตฟอร์มเป็นอีกหนึ่งหัวข้อที่ยาก แต่ถูกละเลย ตัวอย่างเช่นไอคอน Fav มักจะโปร่งใส แต่ iOS ไม่รองรับความโปร่งใส (สำหรับตัวอย่างนี้ให้เปรียบเทียบไอคอน SO touchกับสิ่งที่คุณจะได้รับเมื่อคุณเพิ่ม SO ลงในหน้าจอหลักของ iPhone)

ด้วยเหตุผลเหล่านี้สิ่งที่ฉันคิดว่าเป็นแนวทางปฏิบัติที่ดีที่สุดสำหรับไอคอน Fav คืออย่าสร้างด้วยตนเอง ให้ใช้เครื่องมือเพื่อทำให้กระบวนการทั้งหมดเป็นไปโดยอัตโนมัติและบังคับใช้หลักเกณฑ์ของแพลตฟอร์มแทน

ผมแนะนำให้คุณใช้RealFaviconGenerator สร้างรูปภาพและโค้ด HTML ทั้งหมดที่คุณต้องการเพื่อให้งานสำเร็จ:

  • favicon.ico และไอคอน PNG สำหรับเบราว์เซอร์เดสก์ท็อป
  • ไอคอนสัมผัสของ Apple สำหรับอุปกรณ์ iOS และ Android
  • กระเบื้อง Windows 8
  • ไอคอนแท็บที่ตรึงไว้สำหรับ Safari บน OS X El Capitan

ตัวอย่างเช่นไม่เพียงสร้างmsapplication-TileImageรูปภาพและมาร์กอัปเท่านั้น แต่ยังรวมถึงbrowserconfig.xmlไฟล์ล่าสุดที่รองรับโดย IE11 ด้วย นอกจากนี้ยังได้รับการอัปเดตเมื่อไม่กี่เดือนที่ผ่านมาเพื่อรองรับรายการ Android Chrome และ Safari OS X El Capitan

การเปิดเผยข้อมูลทั้งหมด: ฉันเป็นผู้เขียนไซต์นี้


1
ฉันเพิ่งใช้ไซต์ของคุณสวยมาก คุณควรรวมเมตาแท็ก msapplication-config เมื่อไม่ได้อยู่ในไดเรกทอรีราก:<meta name="msapplication-config" content="../path/to/browserconfig.xml">
Rick Davies

1
ขอบคุณ! เกี่ยวกับเส้นทางไปยัง browserconfig.xml: ซึ่งรวมอยู่ในโค้ดที่สร้างขึ้นแล้วใช่หรือไม่
philippe_b

1
ไฟล์ถูกสร้างขึ้น แต่ไม่มีบรรทัดของรหัส ฉันเพิ่งพยายาม ขอบคุณสำหรับการบริการที่ดีโดยวิธีการ
user664833

1
@ user664833 ขอบคุณสำหรับคำติชม :) คุณหมายถึงบรรทัดที่ประกาศ browserconfig.xml?
philippe_b

3
สิ่งนี้ทำตามวัตถุประสงค์ browserconfig.xmlไม่จำเป็นต้องประกาศตราบใดที่อยู่ในรูทของไซต์ IE จะค้นหาโดยอัตโนมัติ ในกรณีอื่น ๆ (เมื่อคุณป้อนเส้นทางเฉพาะในตัวเลือก) การประกาศจะถูกสร้างขึ้น
philippe_b

56

นี่คือตัวอย่างแบบเต็มของ Favicon สำหรับมือถือและแท็บเล็ต:

<!-- non-retina iPhone pre iOS 7 -->
<link rel="apple-touch-icon" href="icon57.png" sizes="57x57">
<!-- non-retina iPad pre iOS 7 -->
<link rel="apple-touch-icon" href="icon72.png" sizes="72x72">
<!-- non-retina iPad iOS 7 -->
<link rel="apple-touch-icon" href="icon76.png" sizes="76x76">
<!-- retina iPhone pre iOS 7 -->
<link rel="apple-touch-icon" href="icon114.png" sizes="114x114">
<!-- retina iPhone iOS 7 -->
<link rel="apple-touch-icon" href="icon120.png" sizes="120x120">
<!-- retina iPad pre iOS 7 -->
<link rel="apple-touch-icon" href="icon144.png" sizes="144x144">
<!-- retina iPad iOS 7 -->
<link rel="apple-touch-icon" href="icon152.png" sizes="152x152">
<!-- Win8 tile -->
<meta name="msapplication-TileImage" content="favicon-144.png">
<meta name="msapplication-TileColor" content="#B20099"/>
<meta name="application-name" content="name" />

<!-- IE11 tiles -->
<meta name="msapplication-square70x70logo" content="tile-tiny.png"/>
<meta name="msapplication-square150x150logo" content="tile-square.png"/>
<meta name="msapplication-wide310x150logo" content="tile-wide.png"/>
<meta name="msapplication-square310x310logo" content="tile-large.png"/>

สำหรับ IE11 นี่คือคำถามที่พบบ่อย


2
โอ้เยี่ยมมาก - ตัวใหม่สำหรับ IE11 ด้วย! ขอบคุณสำหรับการโพสต์ข้อมูล
Leon

4
แต่ไม่รวมถึง "apple-touch-icon-precomposed.png" และ "apple-touch-icon.png"
ปีเตอร์

2
+1 แต่ฉันไม่แน่ใจว่านี่เป็นแนวทางปฏิบัติที่ดีที่สุดหรือไม่แม้ว่าจะละเอียดถี่ถ้วน สำหรับแนวทางปฏิบัติที่ดีที่สุด (IMHO) และแนวทางปฏิบัติเพิ่มเติมโปรดดูกลโกงที่ยอดเยี่ยมที่นีลโรเบิร์ตสันแนะนำด้านล่าง
Boaz

มีโอกาสที่คุณจะอัปเดตคำตอบเพื่อให้ใช้งานได้กับ 6 และ 6+ ด้วยหรือไม่? หรือโค้ดข้างต้นควรใช้งานได้หรือไม่?
Rvervuurt

ดูคำตอบของฉันstackoverflow.com/a/45301651/661584ง่ายกว่ามาก อาจช่วยได้ ขอบคุณ
MemeDeveloper

26

มีไอคอนที่แตกต่างกันจำนวนมากและแม้แต่หน้าจอเริ่มต้นที่คุณสามารถตั้งค่าสำหรับอุปกรณ์ต่างๆได้ คำตอบนี้จะกล่าวถึงวิธีการสนับสนุนพวกเขาทั้งหมด

นี่คือตัวอย่างบางส่วนที่ฉันใช้กับลิงก์ที่เกี่ยวข้องเพื่อที่ฉันรวบรวมข้อมูล ดูบล็อกของฉันสำหรับข้อมูลเพิ่มเติมและข้อมูลเพิ่มเติมเกี่ยวกับเทมเพลตโครงการASP.NET MVC Boilerplate ที่มีอยู่ในกล่องทันที (รวมถึงไฟล์ภาพตัวอย่าง)

เพิ่มมาร์กอัปต่อไปนี้ในส่วนหัว html ของคุณ ส่วนที่แสดงความคิดเห็นเป็นทางเลือกทั้งหมด ในขณะที่ส่วนที่ไม่มีการใส่ความคิดเห็นจะแนะนำให้ครอบคลุมการใช้งานไอคอนทั้งหมด อย่ากลัวส่วนใหญ่ถ้าเป็นความคิดเห็นเพื่อช่วยคุณ

<!-- Icons & Platform Specific Settings - Favicon generator used to generate the icons below http://realfavicongenerator.net/ -->
<!-- shortcut icon - It is best to add this icon to the root of your site and only use this link element if you move it somewhere else. This file contains the following sizes 16x16, 32x32 and 48x48. -->
<!--<link rel="shortcut icon" href="favicon.ico">-->
<!-- favicon-96x96.png - For Google TV. -->
<link rel="icon" type="image/png" href="https://stackoverflow.com/content/images/favicon-96x96.png" sizes="96x96">
<!-- favicon-16x16.png - The classic favicon, displayed in the tabs. -->
<link rel="icon" type="image/png" href="https://stackoverflow.com/content/images/favicon-16x16.png" sizes="16x16">
<!-- favicon-32x32.png - For Safari on Mac OS. -->
<link rel="icon" type="image/png" href="https://stackoverflow.com/content/images/favicon-32x32.png" sizes="32x32">

<!-- Android/Chrome -->
<!-- manifest-json - The location of the browser configuration file. It contains locations of icon files, name of the application and default device screen orientation. Note that the name field is mandatory.
    https://developer.chrome.com/multidevice/android/installtohomescreen. -->
<link rel="manifest" href="https://stackoverflow.com/content/icons/manifest.json">
<!-- theme-color - The colour of the toolbar in Chrome M39+
    http://updates.html5rocks.com/2014/11/Support-for-theme-color-in-Chrome-39-for-Android -->
<meta name="theme-color" content="#1E1E1E">
<!-- favicon-192x192.png - For Android Chrome M36 to M38 this HTML is used. M39+ uses the manifest.json file. -->
<link rel="icon" type="image/png" href="https://stackoverflow.com/content/icons/favicon-192x192.png" sizes="192x192">
<!-- mobile-web-app-capable - Run Android/Chrome version M31 to M38 in standalone mode, hiding the browser chrome. -->
<!-- <meta name="mobile-web-app-capable" content="yes"> -->

<!-- Apple Icons - You can move all these icons to the root of the site and remove these link elements, if you don't mind the clutter.
    https://developer.apple.com/library/safari/documentation/AppleApplications/Reference/SafariHTMLRef/Introduction.html#//apple_ref/doc/uid/30001261-SW1 -->
<!-- apple-mobile-web-app-title - The name of the application if pinned to the IOS start screen. -->
<!--<meta name="apple-mobile-web-app-title" content="">-->
<!-- apple-mobile-web-app-capable - Hide the browsers user interface on IOS, when the app is run in 'standalone' mode. Any links to other pages that are clicked whilst your app is in standalone mode will launch the full Safari browser. -->
<!--<meta name="apple-mobile-web-app-capable" content="yes">-->
<!-- apple-mobile-web-app-status-bar-style - default/black/black-translucent Styles the IOS status bar. Using black-translucent makes it transparent and overlays it on top of your site, so make sure you have enough margin. -->
<!--<meta name="apple-mobile-web-app-status-bar-style" content="black">-->
<!-- apple-touch-icon-57x57.png - Android Stock Browser and non-Retina iPhone and iPod Touch -->
<link rel="apple-touch-icon" sizes="57x57" href="https://stackoverflow.com/content/images/apple-touch-icon-57x57.png">
<!-- apple-touch-icon-114x114.png - iPhone (with 2× display) iOS = 6 -->
<link rel="apple-touch-icon" sizes="114x114" href="https://stackoverflow.com/content/images/apple-touch-icon-114x114.png">
<!-- apple-touch-icon-72x72.png - iPad mini and the first- and second-generation iPad (1× display) on iOS = 6 -->
<link rel="apple-touch-icon" sizes="72x72" href="https://stackoverflow.com/content/images/apple-touch-icon-72x72.png">
<!-- apple-touch-icon-144x144.png - iPad (with 2× display) iOS = 6 -->
<link rel="apple-touch-icon" sizes="144x144" href="https://stackoverflow.com/content/images/apple-touch-icon-144x144.png">
<!-- apple-touch-icon-60x60.png - Same as apple-touch-icon-57x57.png, for non-retina iPhone with iOS7. -->
<link rel="apple-touch-icon" sizes="60x60" href="https://stackoverflow.com/content/images/apple-touch-icon-60x60.png">
<!-- apple-touch-icon-120x120.png - iPhone (with 2× and 3 display) iOS = 7 -->
<link rel="apple-touch-icon" sizes="120x120" href="https://stackoverflow.com/content/images/apple-touch-icon-120x120.png">
<!-- apple-touch-icon-76x76.png - iPad mini and the first- and second-generation iPad (1× display) on iOS = 7 -->
<link rel="apple-touch-icon" sizes="76x76" href="https://stackoverflow.com/content/images/apple-touch-icon-76x76.png">
<!-- apple-touch-icon-152x152.png - iPad 3+ (with 2× display) iOS = 7 -->
<link rel="apple-touch-icon" sizes="152x152" href="https://stackoverflow.com/content/images/apple-touch-icon-152x152.png">
<!-- apple-touch-icon-180x180.png - iPad and iPad mini (with 2× display) iOS = 8 -->
<link rel="apple-touch-icon" sizes="180x180" href="https://stackoverflow.com/content/images/apple-touch-icon-180x180.png">

<!-- Apple Startup Images - These are shown when the page is loading if the site is pinned https://gist.github.com/tfausak/2222823 -->
<!-- apple-touch-startup-image-1536x2008.png - iOS 6 & 7 iPad (retina, portrait) -->
<link rel="apple-touch-startup-image"
      href="https://stackoverflow.com/content/images/apple-touch-startup-image-1536x2008.png"
      media="(device-width: 768px) and (device-height: 1024px) and (orientation: portrait) and (-webkit-device-pixel-ratio: 2)">
<!-- apple-touch-startup-image-1496x2048.png - iOS 6 & 7 iPad (retina, landscape) -->
<link rel="apple-touch-startup-image"
      href="https://stackoverflow.com/content/images/apple-touch-startup-image-1496x2048.png"
      media="(device-width: 768px) and (device-height: 1024px) and (orientation: landscape) and (-webkit-device-pixel-ratio: 2)">
<!-- apple-touch-startup-image-768x1004.png - iOS 6 iPad (portrait) -->
<link rel="apple-touch-startup-image"
      href="https://stackoverflow.com/content/images/apple-touch-startup-image-768x1004.png"
      media="(device-width: 768px) and (device-height: 1024px) and (orientation: portrait) and (-webkit-device-pixel-ratio: 1)">
<!-- apple-touch-startup-image-748x1024.png - iOS 6 iPad (landscape) -->
<link rel="apple-touch-startup-image"
      href="https://stackoverflow.com/content/images/apple-touch-startup-image-748x1024.png"
      media="(device-width: 768px) and (device-height: 1024px) and (orientation: landscape) and (-webkit-device-pixel-ratio: 1)">
<!-- apple-touch-startup-image-640x1096.png - iOS 6 & 7 iPhone 5 -->
<link rel="apple-touch-startup-image"
      href="https://stackoverflow.com/content/images/apple-touch-startup-image-640x1096.png"
      media="(device-width: 320px) and (device-height: 568px) and (-webkit-device-pixel-ratio: 2)">
<!-- apple-touch-startup-image-640x920.png - iOS 6 & 7 iPhone (retina) -->
<link rel="apple-touch-startup-image"
      href="https://stackoverflow.com/content/images/apple-touch-startup-image-640x920.png"
      media="(device-width: 320px) and (device-height: 480px) and (-webkit-device-pixel-ratio: 2)">
<!-- apple-touch-startup-image-320x460.png - iOS 6 iPhone -->
<link rel="apple-touch-startup-image"
      href="https://stackoverflow.com/content/images/apple-touch-startup-image-320x460.png"
      media="(device-width: 320px) and (device-height: 480px) and (-webkit-device-pixel-ratio: 1)">

<!-- Windows 8 Icons - If you add an RSS feed, revisit this page and regenerate the browserconfig.xml file. You will then have a cool live tile!
     browserconfig.xml - Windows 8.1 - Has been added to the root of the site. This points to the tile images and tile background colour. It contains the following images:
     mstile-70x70.png - For Windows 8.1 / IE11.
     mstile-144x144.png - For Windows 8 / IE10.
     mstile-150x150.png - For Windows 8.1 / IE11.
     mstile-310x310.png - For Windows 8.1 / IE11.
     mstile-310x150.png - For Windows 8.1 / IE11.
     See http://www.buildmypinnedsite.com/en and http://msdn.microsoft.com/en-gb/library/ie/dn255024%28v=vs.85%29.aspx. -->
<!-- application-name - Windows 8+ - The name of the application if pinned to the start screen. -->
<!--<meta name="application-name" content="">-->
<!-- msapplication-TileColor - Windows 8 - The tile colour which shows around your tile image (msapplication-TileImage). -->
<meta name="msapplication-TileColor" content="#5cb95c">
<!-- msapplication-TileImage - Windows 8 - The tile image. -->
<meta name="msapplication-TileImage" content="/content/images/mstile-144x144.png">

ไฟล์ browserconfig.xml ของฉัน คำอธิบายทั้งหมดข้างต้น

<?xml version="1.0" encoding="utf-8"?>
<browserconfig>
  <msapplication>
    <tile>
      <square70x70logo src="/Content/Images/mstile-70x70.png"/>
      <square150x150logo src="/Content/Images/mstile-150x150.png"/>
      <square310x310logo src="/Content/Images/mstile-310x310.png"/>
      <wide310x150logo src="/Content/Images/mstile-310x150.png"/>
      <TileColor>#5cb95c</TileColor>
    </tile>
  </msapplication>
</browserconfig>

ไฟล์ manifest.json ของฉัน คำอธิบายทั้งหมดข้างต้น

{
    "name": "ASP.NET MVC Boilerplate (Required! Update This)",
    "icons": [
        {
            "src": "\/Content\/icons\/android-chrome-36x36.png",
            "sizes": "36x36",
            "type": "image\/png",
            "density": "0.75"
        },
        {
            "src": "\/Content\/icons\/android-chrome-48x48.png",
            "sizes": "48x48",
            "type": "image\/png",
            "density": "1.0"
        },
        {
            "src": "\/Content\/icons\/android-chrome-72x72.png",
            "sizes": "72x72",
            "type": "image\/png",
            "density": "1.5"
        },
        {
            "src": "\/Content\/icons\/android-chrome-96x96.png",
            "sizes": "96x96",
            "type": "image\/png",
            "density": "2.0"
        },
        {
            "src": "\/Content\/icons\/android-chrome-144x144.png",
            "sizes": "144x144",
            "type": "image\/png",
            "density": "3.0"
        },
        {
            "src": "\/Content\/icons\/android-chrome-192x192.png",
            "sizes": "192x192",
            "type": "image\/png",
            "density": "4.0"
        }
    ]
}

รายการไฟล์ในโปรเจ็กต์ (โปรดทราบว่าชื่อของไฟล์เหล่านี้มีความสำคัญหากคุณตัดสินใจที่จะใส่บางไฟล์ที่รูทของโปรเจ็กต์ของคุณเพื่อหลีกเลี่ยงการใช้เมตาแท็กข้างต้น):

favicon.ico
browserconfig.xml
Content/Images/
    android-chrome-144x144.png
    android-chrome-192x192.png
    android-chrome-36x36.png
    android-chrome-48x48.png
    android-chrome-72x72.png
    android-chrome-96x96.png
    apple-touch-icon.png
    apple-touch-icon-57x57.png
    apple-touch-icon-60x60.png
    apple-touch-icon-72x72.png
    apple-touch-icon-76x76.png
    apple-touch-icon-114x114.png
    apple-touch-icon-120x120.png
    apple-touch-icon-144x144.png
    apple-touch-icon-152x152.png
    apple-touch-icon-180x180.png
    apple-touch-icon-precomposed.png (180x180)
    favicon-16x16.png
    favicon-32x32.png
    favicon-96x96.png
    favicon-192x192.png
    manifest.json
    mstile-70x70.png
    mstile-144x144.png
    mstile-150x150.png
    mstile-310x150.png
    mstile-310x310.png
    apple-touch-startup-image-1536x2008.png
    apple-touch-startup-image-1496x2048.png
    apple-touch-startup-image-768x1004.png
    apple-touch-startup-image-748x1024.png
    apple-touch-startup-image-640x1096.png
    apple-touch-startup-image-640x920.png
    apple-touch-startup-image-320x460.png

ค่าโสหุ้ยรวม

หากคุณแสดงความคิดเห็นที่เป็น HTML พิเศษ 3KB หากคุณไม่รองรับหน้าจอสแปลชที่มีขนาด 1.5KB หากคุณใช้การบีบอัด GZIP กับเนื้อหา HTML ซึ่งทุกคนควรทำในทุกวันนี้นั่นจะทำให้คุณมีค่าใช้จ่ายประมาณ 634 ไบต์ต่อคำขอเพื่อรองรับทุกแพลตฟอร์มหรือ 446 ไบต์โดยไม่มีหน้าจอสแปลช โดยส่วนตัวฉันคิดว่ามันคุ้มค่าที่จะรองรับอุปกรณ์ IOS, Android และ Windows แต่เป็นทางเลือกของคุณฉันแค่ให้ตัวเลือก!

หมายเหตุด้านข้างเกี่ยวกับไอคอนเว็บปัจจุบัน / หน้าจอเริ่มต้น / สถานการณ์การตั้งค่า

สถานการณ์ที่มีไอคอนเฉพาะผู้ขายหน้าจอเริ่มต้นและแท็กพิเศษเพื่อควบคุมเว็บเบราว์เซอร์หรือไอคอนที่ตรึงไว้นั้นไร้สาระ ในโลกที่สมบูรณ์แบบเราทุกคนจะใช้ไฟล์ favicon.svg ซึ่งสามารถดูดีได้ทุกขนาดและสามารถวางไว้ที่รากของหน้า เฉพาะ FireFox เท่านั้นที่สนับสนุนสิ่งนี้ในขณะที่เขียน (ดูCanIUse.com )

อย่างไรก็ตามไอคอนไม่ได้เป็นการตั้งค่าเพียงอย่างเดียวในปัจจุบันยังมีการตั้งค่าเฉพาะสำหรับผู้จำหน่ายอื่น ๆ อีกหลายรายการ (แสดงด้านบน) แต่ไฟล์ favicon.svg จะครอบคลุมกรณีการใช้งานส่วนใหญ่

อัปเดต

อัปเดตเพื่อรวมตัวเลือกไอคอน / ธีมใหม่ของ Android / Chrome เวอร์ชัน M39 + สิ่งที่น่าสนใจคือพวกเขาใช้แนวทางเดียวกันกับ Microsoft แต่ใช้ไฟล์ JSON แทน XML


4
นี่มันมากเกินไป (ไม่ใช่คำตอบของคุณ แต่เป็นความจริงที่ว่าผู้จำหน่ายเบราว์เซอร์มีข้อกำหนดมากมาย :))

@jor เห็นด้วยทั้งหมดมันเป็นสถานการณ์ที่งี่เง่า svg favicons จะแก้ปัญหาได้ 90%
Muhammad Rehan Saeed

ดูคำตอบของฉันstackoverflow.com/a/45301651/661584ง่ายกว่ามาก อาจช่วยได้ ขอบคุณ
MemeDeveloper

คุณระบุว่าชื่อไฟล์มีความสำคัญ ฉันไม่ค่อยเข้าใจว่าคุณหมายถึงอะไร คำถามของฉันคือฉันสามารถเปลี่ยนชื่อไฟล์ทั้งหมดเพื่อให้ถูกนำหน้าด้วยfavicon-... - ถ้าฉันอัปเดตชื่อในรายการและใน<link>แท็กในเอกสาร html ได้headหรือไม่
SherylHohman

5

วิธีแก้ปัญหาที่ง่ายที่สุดคือใช้ (!) PNG (ในปี 2020)

เพียงเพิ่มสิ่งนี้ลงในส่วนหัวของเอกสารของคุณ:

<link rel="shortcut icon" type="image/png" href="https://stackoverflow.com/img/icon-192x192.png">
<link rel="shortcut icon" sizes="192x192" href="https://stackoverflow.com/img/icon-192x192.png">
<link rel="apple-touch-icon" href="https://stackoverflow.com/img/icon-192x192.png">

ลิงก์สุดท้ายสำหรับ Apple (หน้าจอหลัก) ลิงก์ที่สองสำหรับ Android (หน้าจอหลัก) และลิงก์แรกสำหรับส่วนที่เหลือ

โปรดทราบว่าโซลูชันนี้ไม่รองรับ 'ไทล์' ใน Windows 8/10 รองรับรูปภาพในทางลัดบุ๊กมาร์กและแท็บเบราว์เซอร์

ขนาดตรงกับขนาดที่หน้าจอหลักของ Android ใช้ ขนาดไอคอนหน้าจอหลักของ Apple คือ 60px (3x) ดังนั้น 180px และจะลดขนาดลง แพลตฟอร์มอื่น ๆ จะใช้ไอคอนทางลัดเริ่มต้นซึ่งจะลดขนาดลงด้วย


1
แค่สงสัยว่าขนาด 196 พิกเซลมาจากไหน เป็นข้อมูลจำเพาะสำหรับอุปกรณ์เฉพาะหรือมาตรฐาน?
bluesixty

มันคือสเป็คหน้าจอหลักของ Android: Emergeinteractive.com/insights/detail/… . ในตอนแรกมันเป็นไอคอนขนาด 196 × 196 ฉันอ่านข้อมูลจำเพาะอีกครั้งซึ่งเป็นสิ่งที่ฉันไม่ได้ทำมาระยะหนึ่งแล้ว ฉันรู้ว่ามีการเปลี่ยนแปลง 196 × 196 กลายเป็น 192 × 192 realfavicongenerator.net/blog/android-chrome-and-its-favicon
JoostS

1

ฉันถามตัวเองด้วยคำถามเดียวกันและพยายามมองหาโปรเจ็กต์ง่ายๆที่สามารถรวมเข้ากับขั้นตอนการสร้างหรือเพียงแค่ทำให้การสร้างสินทรัพย์และมาร์กอัปที่ต้องการทำได้ง่ายขึ้น

ฉันไม่ได้พบสิ่งที่ตรงกับความต้องการของฉันดังนั้นฉันสร้างfaviconbuildและปล่อยให้มันอยู่ภายใต้ใบอนุญาตเอ็มไอที

จุดประสงค์ของโครงการนี้คือการสร้างยูทิลิตี้ข้ามแพลตฟอร์มส่วนกลางที่บำรุงรักษาและรันได้ในพื้นที่เพื่อสร้าง favicons และสนับสนุนมาร์กอัป มันใช้ประโยชน์จากพลังของImageMagickดังนั้นคุณจะต้องดาวน์โหลดที่สำหรับแพลตฟอร์มของคุณหรือใช้คนที่ผมให้ไว้ในของฉันเผยแพร่ โปรดอย่าลังเลที่จะใช้สิ่งนี้ในโครงการเชิงพาณิชย์หรือส่วนบุคคลมีส่วนร่วมส่งคำขอคุณสมบัติหรือใช้เป็นแหล่งที่มาของแรงบันดาลใจสำหรับสาธารณูปโภคของคุณเอง

โครงการประกอบด้วยไฟล์แบตช์สำหรับ Windows และสคริปต์ทุบตีสำหรับ Unix / Mac (หรือ Windows ผ่าน Cygwin) คุณสามารถรับรายการตัวเลือกทั้งหมดที่รองรับได้จากตัวเลือกวิธีใช้ภายใน -h หรือ - help

เช่น:

./faviconbuild.sh -h

สคริปต์ทั้งสองแยกวิเคราะห์ไฟล์ข้อความธรรมดาที่คุณสามารถแทนที่ด้วยอ็อพชัน -p หรือ --parsed โดยพื้นฐานแล้วไฟล์นี้เป็นเพียงเทมเพลตของคำสั่งเพื่อให้คุณสามารถปรับแต่งผลลัพธ์ได้ง่ายขึ้นหากจำเป็น

ฉันยังเผยแพร่บล็อกโพสต์เกี่ยวกับการพัฒนาและเป็นบทช่วยสอนขนาดเล็กเกี่ยวกับการเขียนสคริปต์ bash / batch

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