React için site simgesi
React sizin için "<head>"i oluşturmaz; site simgesi statik index.html'inizde bulunur. favicon.ico'inizi /public klasörüne bırakın, index.html'e bağlayın ve temel işlemleri tamamlayın. Modern kurulumlar ayrıca karanlık mod desteğine sahip bir SVG çeşidi, 180×180 apple-touch-icon ve PWA yükleme istemleri için bir web bildirimi içerir. favicon generator, ihtiyacınız olan her dosyayı tek bir kaynak görüntüden üretir. Bağlantı etiketi referansının tamamı için ayrıca how-to-add-favicon-html guide'e bakın.
Hem Vite hem de Create React Uygulamasında (CRA), /public dizinine yerleştirilen statik dosyalar, herhangi bir paketleyici işlemine gerek kalmadan doğrudan kök URL'den sunulur. Bu, /public/favicon.ico'e https://alaniniz.com/favicon.ico adresinden erişilebildiği anlamına gelir; bu, tarayıcıların bir favicon için ilk önce denediği yolun tam olarak yoludur. Temel .ico kurulumu için web paketi yükleyicisine, Vite eklentisine veya derleme yapılandırmasına gerek yoktur.
`npm create vite@latest` ile yeni bir Vite React projesi oluşturduğunuzda, iskele zaten /public'e bir favicon.svg yerleştirir ve buna index.html'te referans verir. Bu iyi bir başlangıç noktasıdır ancak varsayılan SVG genel bir Vite simgesidir. Bunu kendi SVG'inizle değiştirin ve SVG favicon'larını desteklemeyen tarayıcılar için çok boyutlu bir .ico yedek ekleyin.
React Oluştur Uygulama iskeleleri, varsayılan olarak /public'te bir favicon.ico içerir. Değiştirmek için kendi çok boyutlu .ico dosyanızı dosyanın üzerine yazmanız yeterlidir. CRA ayrıca /public'te manifest.json'u da içerir; `icons` dizisi girişlerini kendi PNG dosyalarınızı (192×192 ve 512×512) işaret edecek şekilde güncelleyin. /public'teki index.html, zaten CRA tarafından eklenen manifest bağlantı etiketine sahip.
Çok boyutlu .ico hala en önemli dosyadır. SVG favori simgelerini desteklemeyen tarayıcılar (eski Safari sürümleri, bazı yerleştirme araçları ve Windows kısayol oluşturma) otomatik olarak /favicon.ico'e geri döner. Tek bir .ico dosyası 16×16, 32×32, 48×48 ve 64×64 kareleri bir araya getirir, böylece tarayıcı herhangi bir ekstra bağlantı etiketi olmadan doğru çözünürlüğü seçer.
Yüksek DPI (Retina) ekranlar için .ico'ya ek olarak açık bir PNG bağlantı etiketi ekleyin. "<link rel='icon' type='image/png' sizes='32x32' href='/favicon-32x32.png'>", tarayıcıya, 2x simgenin aynı çözünürlüklü .ico çerçevesinden daha keskin görüntülendiği retina ekranlarda PNG'i kullanmasını söyler. Hem .ico'yu hem de PNG'i /public'e yerleştirin.
SVG site simgeleri, React uygulamaları için geleceğe yönelik en iyi çözümü sunar. Tek bir SVG dosyası, herhangi bir sekme boyutunda net bir şekilde oluşturulur ve renklerini kullanıcının renk şemasına göre uyarlayabilir. index.html'e `<link rel='icon' type='image/svg+xml' href='/favicon.svg'>` ekleyin. SVG favicon'larını destekleyen tarayıcılar .ico'ya tercih eder; Bir sonraki bağlantı etiketine kolayca geçmeyen tarayıcılar.
Karanlık mod SVG site simgeleri, React uygulamalarında güçlüdür çünkü hedef kitle genellikle geliştirici araçlarını ve karanlık mod masaüstü bilgisayarları kullanır. `@media (prefers-color-scheme: dark) { :root { fill: white; } }` ile (simgenizin yapısına göre ayarlanmış) SVG'inizin içine bir `<style>` bloğu yerleştirin. Bu tek dosya, JavaScript veya ekstra etiket olmadan hem açık hem de koyu temalar sunar.
Herhangi bir mobil kullanıcı React uygulamanızı ana ekranına kaydedecekse apple-touch-icon gereklidir. apple-touch-icon.png'yi (180×180) /public'e yerleştirin ve index.html'e `<link rel='apple-touch-icon'size='180x180' href='/apple-touch-icon.png'>` ekleyin. Bu olmadan iOS, ana ekranda marka simgeniz yerine uygulamanın düşük çözünürlüklü bir ekran görüntüsünü gösterir.
PWA olarak dağıtılan React uygulamaları için, /public/manifest.json (veya site.webmanifest) dosyanız 192×192 ve 512×512 boyutunda simge girişleri içermelidir. Bu boyutlar, Android ana ekran kurulum istemini ve Chrome PWA kurulum iletişim kutusunu yönlendirir. favicon generator, hem PNG'lerin hem de doğrudan /public'e bırakabileceğiniz önceden doldurulmuş bir bildirim şablonunun çıktısını verir.
React SPA dağıtımlarında favicon'lar için yönlendirme önemlidir. /favicon.ico yolu, React yönlendiricisi tarafından kesilmemeli, doğrudan ana makineniz tarafından sunulmalıdır. Vercel, Netlify ve GitHub Sayfalarının tümü, SPA'ya geçmeden önce kökte /public içerikleri sunar. Özel bir sunucuda barındırıyorsanız, statik dosya ara yazılımınızın index.html'e hizmet veren tümünü yakalama yolundan önce çalıştığını doğrulayın.
`npm run dev` ile geliştirme sırasında Vite çoğu değişikliği otomatik olarak otomatik olarak yeniden yükler, ancak favicon değişiklikleri bazen tarayıcının manuel olarak yenilenmesini gerektirir. Tarayıcılar, geliştirme sunucusu yeniden yüklemelerinde bile kaynak başına /favicon.ico önbelleğe alır. Geliştirme sırasında yenilemeyi zorlamak için, kalıcı olarak yenileyin (Ctrl+Shift+R) veya bağlantı etiketinize geçici olarak `/favicon.svg?v=2` gibi bir sorgu dizesi ekleyin.
Sunucu tarafı işleme kurulumlarında (örneğin, özel bir Express sunucusuyla React), express.static() ara yazılımının React SSR işleyicisinden önce /public'e hizmet verdiğini doğrulamanız gerekir. SSR işleyicisi önce tüm istekleri yakalarsa, /favicon.ico, React tarafından işlenecek ve ikili ICO dosyası yerine HTML döndürerek favicon'u tamamen bozacaktır.
Birden fazla React uygulaması içeren Monorepo kurulumları, dikkatli site simgesi yönetimi gerektirir. Her uygulamanın /public klasörünün kendi favicon'u vardır. Simgeleri uygulamalar arasında paylaşıyorsanız, monorepo kökünde tek bir doğruluk kaynağı simgeleri dizinini tutmayı ve oluşturma adımı sırasında dosyaları her /public'e kopyalamayı düşünün. Derleme komut dosyasındaki `cp` gibi araçlar veya özel bir varlık senkronizasyon eklentisi, bunları senkronize tutar.
Dağıtımdan sonra, tüm site simgesi çeşitlerinin herkese açık olarak erişilebilir olduğunu doğrulamak için favicon tester'i kullanın. Üretim URL'nizi girin ve favicon.ico, favicon.svg, apple-touch-icon.png ve bildirim PNG'lerinizin tamamının doğru şekilde çözülüp çözülmediğini kontrol edin. Bu, yanlış yapılandırılmış statik dosya sunumunu veya geliştirmede çalışan ancak üretimde kesintiye uğrayan yolları ortadan kaldırır.
Nasıl çalışır
- 1
Favicon paketinizi oluşturun
[favicon generator](tool:favicon-generator)'e 512×512 PNG veya SVG yükleyin. favicon.ico, favicon.svg, apple-touch-icon.png, android-chrome-192x192.png, android-chrome-512x512.png ve site.webmanifest'i içeren paketi indirin.
- 2
Tüm dosyaları /public'e kopyala
Paketteki her dosyayı projenizin /public dizinine yerleştirin. Bu, Vite ve CRA'nın onlara kök URL'de hizmet vermesini sağlar (ör. https://alaniniz.com/favicon.ico).
- 3
index.html'teki bağlantı etiketlerini güncelleyin
/public/index.html'i (veya Vite için proje kökündeki index.html'i) açın. "<head>" içinde aşağıdakileri değiştirin veya ekleyin: .ico bağlantısı, SVG bağlantısı, apple-touch-icon bağlantısı ve bildirim bağlantısı. Oluşturulan HTML pasajını README favicon paketinden kopyalayın.
- 4
Manifest.json simge girişlerini güncelleyin
CRA için /public/manifest.json dosyasını açın ve `icons` dizisini yeni 192×192 ve 512×512 PNG'lerinize referans verecek şekilde güncelleyin. Vite için oluşturulan site.webmanifest dosyasını manifest.json olarak yeniden adlandırın veya orijinal dosya adını koruyun ve bağlantı etiketinin onu gösterdiğinden emin olun.
- 5
Geliştirme ve üretimde test
Favicon önbelleğini atlamak için geliştirme sırasında tarayıcıyı tam olarak yenileyin. Dağıtımdan sonra tüm simge yollarının doğru şekilde çözümlendiğini doğrulamak için [favicon tester](utility:favicon-tester)'i kullanın. iOS'te, apple-touch-icon'i doğrulamak için 'Ana Ekrana Ekle'yi kullanın.
Hemen deneyin
React'e hazır bir sık kullanılan simgesi oluşturun
Favicon OluşturucuSSS
Favicon bir Vite React uygulamasında nereye gider?+
/public dizininde: /public/favicon.ico, /public/favicon.svg, /public/apple-touch-icon.png. /public'teki her şey, herhangi bir derleme işlemine gerek kalmadan kök URL'de sunulur.
Varsayılan Vite favicon'unu nasıl değiştiririm?+
/public/favicon.svg ve /public/favicon.ico'i kendi dosyalarınızla değiştirin. Ayrıca href'ler farklıysa index.html'teki `<link>` etiketlerini de güncelleyin. Değişikliği görmek için geliştirme sunucusunu yeniden başlatın ve tarayıcı sekmesini tam olarak yenileyin.
React'e karanlık mod favori simgesini nasıl eklerim?+
Simge yollarınızın dolgu veya kontur rengini değiştiren yerleşik `@media (prefers-color-scheme: dark)` stil bloğuna sahip bir SVG favicon kullanın. index.html'te "<link rel='icon' type='image/svg+xml' href='/favicon.svg'>` ile bağlayın. JavaScript'e gerek yok.
React site simgem neden tarayıcıda güncellenmiyor?+
Tarayıcılar, etkin modül yeniden yüklemelerinde bile kaynak başına /favicon.ico önbelleğe alır. Sekmeyi kalıcı olarak yenileyin (Ctrl+Shift+R / Cmd+Shift+R) veya yeni bir getirme işlemini zorlamak için bağlantı etiketinizdeki href'e geçici olarak bir sürüm sorgu dizesi ekleyin.
Favicon'u sunmak için Vite veya webpack'i yapılandırmam gerekir mi?+
Hayır. Hem Vite hem de CRA, kök URL'deki /public klasörünü otomatik olarak sunar. /public'e yerleştirildikleri sürece favicon dosyaları için paketleyici yapılandırmasına gerek yoktur.
Bir CRA projesinde manifest.json nedir ve favicon'u etkiler mi?+
PWA yükleme istemlerini etkinleştiren web uygulaması bildirimidir. /public'teki PNG'lere işaret eden simge girişlerini içerir. Android ana ekran kurulumu sırasında doğru görüntüleme için kendi simgelerinizi kullanmak üzere 192×192 ve 512×512 girişlerini güncelleyin.
Bir favicon'u index.html yerine React bileşeninde kullanabilir miyim?+
Evet, react-helmet veya Next.js'in yerleşik Head bileşeni gibi kitaplıkları kullanarak. Vite React için bağlantı etiketlerini doğrudan index.html'e enjekte edin; dosya oluşturma sırasında işlendiğinden bu en basit ve en güvenilir yaklaşımdır.