מדריך

Favicon עבור React

React אינו מציג עבורך את '<head>' - הסמל חי ב-index.html הסטטי שלך. שחרר את ה-favicon.ico שלך לתיקיה /public, קשר אותו ב-index.html, וסיימת עם היסודות. הגדרות מודרניות כוללות גם גרסת SVG עם תמיכה במצב כהה, 180×180 apple-touch-icon ומניפסט אינטרנט עבור הנחיות התקנה של PWA. ה-favicon generator מייצר כל קובץ שאתה צריך מתמונת מקור אחת. ראה גם את how-to-add-favicon-html guide להפניה המלאה לתג הקישור.

גם ב-Vite וגם ב-Create React App (CRA), קבצים סטטיים הממוקמים בספריית /public מוגשים ישירות מכתובת ה-URL של השורש ללא כל עיבוד מצרפי. המשמעות היא ש-/public/favicon.ico נגיש בכתובת https://yourdomain.com/favicon.ico, שזה בדיוק הנתיב שדפדפנים מנסים תחילה עבור סמל favicon. אין צורך בטעינת חבילות אינטרנט, תוסף Vite או תצורת build עבור ההגדרה הבסיסית של .ico.

כאשר אתה יוצר פרויקט Vite React חדש עם `npm create vite@latest`, הפיגום כבר מציב favicon.svg ב-/public ומפנה אליו ב-index.html. זוהי נקודת התחלה טובה, אבל ברירת המחדל SVG היא סמל Vite גנרי. החלף אותו ב-SVG משלך והוסף גרסה קודמת מרובת גדלים עבור דפדפנים שאינם תומכים ב-SVG favicons.

צור React פיגומי אפליקציה כוללים favicon.ico ב-/public כברירת מחדל. כדי להחליף אותו, פשוט החלף את הקובץ ב-.ico בגדלים רבים משלך. CRA כולל גם manifest.json ב-/public - עדכן את ערכי המערך `icons` כך שיצביעו על קבצי PNG משלך (192×192 ו-512×512). ל-index.html ב-/public כבר הוכנס תג קישור המניפסט על ידי CRA.

ה-.ico בגדלים רבים הוא עדיין הקובץ החשוב ביותר. דפדפנים שאינם תומכים ב-SVG favicons - גרסאות ישנות יותר של Safari, כמה כלי הטמעה ויצירת קיצורי Windows - נופלים בחזרה ל-/favicon.ico באופן אוטומטי. קובץ .ico יחיד מאגד 16×16, 32×32, 48×48 ו-64×64 פריימים כך שהדפדפן בוחר את הרזולוציה הנכונה ללא תגי קישור נוספים.

עבור תצוגות DPI גבוהות (Retina), הוסף תג קישור מפורש PNG בנוסף ל-.ico. `<link rel='icon' type='image/png' sizes='32x32' href='/favicon-32x32.png'>` אומר לדפדפן להשתמש ב-PNG במסכי רשתית שבהם סמל פי 2 מוצג בצורה חדה יותר מאשר מסגרת .ico ברזולוציה זהה. מקם גם את ה-.ico וגם את ה-PNG ב-/public.

SVG favicons מציעים את הפתרון הטוב ביותר העמיד לעתיד עבור אפליקציות React. קובץ SVG בודד מוצג בצורה חדה בכל גודל כרטיסייה ויכול להתאים את הצבעים שלו לערכת הצבעים של המשתמש. הוסף `<link rel='icon' type='image/svg+xml' href='/favicon.svg'>` ב-index.html. דפדפנים התומכים ב-SVG מועדפים מעדיפים את זה על פני ה-.ico; דפדפנים שלא פשוט מדלגים לתג הקישור הבא.

מועדוני SVG במצב כהה הם רבי עוצמה באפליקציות React מכיוון שקהל היעד משתמש לעתים קרובות בכלי מפתחים ובמחשבים שולחניים במצב כהה. הטמע בלוק `<style>` בתוך ה-SVG שלך עם `@media (prefers-color-scheme: dark) { :root { fill: white; } }` (מותאם למבנה הסמל שלך). קובץ בודד זה משרת נושאים בהירים וכהים ללא JavaScript או תגים נוספים.

ה-apple-touch-icon נדרש אם משתמשים בנייד ישמרו את אפליקציית React שלך במסך הבית שלהם. הצב את apple-touch-icon.png (180×180) ב-/public והוסף `<link rel='apple-touch-icon' sizes='180x180' href='/apple-touch-icon.png'>` ל-index.html. בלי זה, iOS מציג צילום מסך ברזולוציה נמוכה של האפליקציה במקום סמל המותג שלך במסך הבית.

עבור אפליקציות של React הפרוסות כ-PWAs, /public/manifest.json (או site.webmanifest) שלך חייב לכלול ערכים של סמלים ב-192×192 ו-512×512. גדלים אלה מניעים את הודעת ההתקנה של מסך הבית של Android ואת תיבת הדו-שיח של ההתקנה Chrome PWA. ה-favicon generator מוציא גם PNGs וגם תבנית מניפסט מולאה מראש שתוכל להכניס ישירות ל-/public.

ניתוב חשוב עבור favicons בפריסות React SPA. הנתיב /favicon.ico חייב להיות מוגש ישירות על ידי המארח שלך, לא ליירט על ידי הנתב React. דפי Vercel, Netlify ו-GitHub כולם מגישים תוכן /public בשורש לפני שהם עוברים ל-SPA. אם אתה מארח בשרת מותאם אישית, אשר את התווך של הקבצים הסטטיים שלך פועל לפני נתיב ה-catch-all שמשרת את index.html.

במהלך הפיתוח עם `npm run dev`, Vite טוען מחדש את רוב השינויים באופן אוטומטי, אך שינויים ב-favicon דורשים לפעמים רענון ידני של הדפדפן. דפדפנים מאחסנים /favicon.ico לכל מקור אפילו בטעינות מחדש של שרת מפתחים. כדי לאלץ רענון במהלך הפיתוח, רענן קשה (Ctrl+Shift+R) או הוסף מחרוזת שאילתה כמו `/favicon.svg?v=2` בתג הקישור שלך באופן זמני.

בהגדרות עיבוד בצד השרת (React עם שרת Express מותאם אישית, למשל), עליך לאשר שתוכנת האמצע express.static() משרתת /public לפני המטפל React SSR. אם המטפל ב-SSR יתפוס את כל הבקשות תחילה, /favicon.ico יעובד על ידי React ויחזיר את HTML במקום את הקובץ הבינארי ICO, וישבור את ה-favicon לחלוטין.

הגדרות Monorepo עם אפליקציות React מרובות דורשות ניהול קפדני של favicon. לתיקיית /public של כל אפליקציה יש סמל משלה. אם אתה משתף אייקונים בין אפליקציות, שקול לשמור ספריית סמלים אחת של מקור האמת בשורש ה-monorepo ולהעתיק קבצים לכל /public במהלך שלב הבנייה. כלים כמו `cp` בסקריפט ה-build או תוסף ייעודי לסנכרון נכסים שומרים אותם מסונכרנים.

לאחר הפריסה, השתמש ב-favicon tester כדי לוודא שכל גרסאות ה-favicon נגישות לציבור. הזן את כתובת האתר של הייצור שלך ובדוק ש-favicon.ico, favicon.svg, apple-touch-icon.png והמניפסט PNG שלך נפתרו כולם כהלכה. זה שולל הגשת קבצים סטטיים או נתיבים שעובדים ב-dev אך מתקלקלים בייצור.

איך זה עובד

  1. 1

    צור את חבילת ה-favicon שלך

    העלה 512×512 XXH14XX או SVG ל-[favicon generator](tool:favicon-generator). הורד את החבילה המכילה favicon.ico, favicon.svg, apple-touch-icon.png, android-chrome-192x192.png, android-chrome-512x512.png ו-site.webmanifest.

  2. 2

    העתק את כל הקבצים ל-/public

    הכנס כל קובץ מהחבילה לספריית /public של הפרויקט שלך. זה מבטיח ש-Vite ו-CRA משרתים אותם בכתובת ה-Root (למשל, https://yourdomain.com/favicon.ico).

  3. 3

    עדכן את תגי הקישור ב-index.html

    פתח את /public/index.html (או index.html בשורש הפרויקט עבור Vite). החלף או הוסף את הפרטים הבאים בתוך `<head>`: קישור .ico, קישור SVG, קישור apple-touch-icon וקישור מניפסט. העתק את קטע הקוד HTML שנוצר מחבילת ה-favicon README.

  4. 4

    עדכן ערכי סמל manifest.json

    עבור CRA, פתח את /public/manifest.json ועדכן את מערך `icons` כדי להתייחס ל-192×192 ו-512×512 PNG החדשים שלך. עבור Vite, שנה את שם ה-site.webmanifest שנוצר ל-manifist.json או שמור את שם הקובץ המקורי וודא שתג הקישור מפנה אליו.

  5. 5

    מבחן בפיתוח וייצור

    רענן קשה את הדפדפן במהלך הפיתוח כדי לעקוף את מטמון ה-favicon. לאחר הפריסה, השתמש ב-[favicon tester](utility:favicon-tester) כדי לאשר שכל נתיב הסמלים נפתרו כהלכה. ב-iOS, השתמש ב'הוסף למסך הבית' כדי לאמת את ה-apple-touch-icon.

נסה עכשיו

בנו סמל React מוכן

מחולל פביקון

שאלות נפוצות

לאן הולך ה-favicon באפליקציית Vite React?+

בספרייה /public: /public/favicon.ico, /public/favicon.svg, /public/apple-touch-icon.png. הכל ב-/public מוגש בכתובת ה-Root ללא כל עיבוד בנייה.

כיצד אוכל להחליף את ברירת המחדל של Vite favicon?+

החלף את /public/favicon.svg ו-/public/favicon.ico בקבצים משלך. עדכן גם את התגים `<link>` ב-index.html אם ה-hrefs שונים. הפעל מחדש את שרת הפיתוח ורענן חזק את לשונית הדפדפן כדי לראות את השינוי.

כיצד אוכל להוסיף סמל מצב כהה ב-React?+

השתמש בסמל SVG עם בלוק בסגנון `@media (prefers-color-scheme: dark)` מוטבע שמשנה את צבע המילוי או הקו של נתיבי הסמל שלך. קשר אותו עם `<link rel='icon' type='image/svg+xml' href='/favicon.svg'>` ב-index.html. אין צורך ב-XXH6XX.

מדוע React favicon שלי לא יתעדכן בדפדפן?+

דפדפנים מאחסנים /favicon.ico לכל מקור, אפילו על פני טעינות חוזרות של מודול חם. רענן קשה את הכרטיסייה (Ctrl+Shift+R / Cmd+Shift+R), או הוסף באופן זמני מחרוזת שאילתת גרסה ל-href בתג הקישור שלך כדי לאלץ שליפה חדשה.

האם אני צריך להגדיר את Vite או webpack כדי להגיש את ה-favicon?+

לא. גם Vite וגם CRA מגישים אוטומטית את התיקיה /public בכתובת ה-Root. אין צורך בתצורת חבילה עבור קבצי favicon כל עוד הם ממוקמים ב-/public.

מהו manifest.json בפרויקט CRA והאם הוא משפיע על ה-favicon?+

המניפסט של אפליקציית האינטרנט הוא שמאפשר הוראות התקנה של PWA. הוא כולל ערכי סמלים המצביעים על PNGs ב-/public. עדכן את הערכים 192×192 ו-512×512 כדי להשתמש בסמלים משלך לתצוגה נכונה במהלך התקנת מסך הבית של Android.

האם אני יכול להשתמש ב-favicon ברכיב React ולא ב-index.html?+

כן, שימוש בספריות כמו react-helm או רכיב ה-Head המובנה של Next.js. עבור Vite React, הכנס את תגי הקישור ל-index.html ישירות - זוהי הגישה הפשוטה והאמינה ביותר מכיוון שהקובץ מעובד בזמן הבנייה.

כלים קשורים

מדריכים נוספים

מדריכים

גלה את FetchFavicon

קטגוריות

ממירים

כלי עזר

מדריכים

הדרכות