Favicon w Next.js App Router

Autor:

App Router może tworzyć elementy ikon na podstawie konwencjonalnych plików lub obiektu metadata. Obie metody są poprawne, ale mieszanie ich bez jasnej zasady łatwo prowadzi do konkurujących deklaracji.

Drzewo App Router łączące pliki ikon ze stronami
Konwencje plików odpowiadają segmentom tras App Router.

Wybierz konwencje plików

Umieść favicon.ico w katalogu głównym app. Obsługiwane pliki icon mogą znajdować się w segmencie trasy, natomiast apple-icon opisuje ikonę dla urządzeń Apple.

Next.js wykrywa te pliki, określa przydatne atrybuty i dodaje odpowiednie elementy link do head. Ikona umieszczona w segmencie dotyczy tras w tym segmencie.

Konwencje ikon App Router
PlikLokalizacjaPrzeznaczenie
favicon.icoapp/Zapasowa ikona witryny
icon.svgsegment appIkona przeglądarki
apple-icon.pngsegment appIkona Apple
manifest.webmanifestsegment appManifest instalowanej aplikacji

Użyj metadanych dla jawnych ścieżek

Jeśli pliki znajdują się w public lub na serwerze obrazów, zadeklaruj metadata.icons w układzie lub stronie. Określ icon, apple oraz, gdy potrzebne, shortcut, używając spójnych adresów URL.

Metadane segmentu potomnego mogą zastąpić złożone pola odziedziczone po rodzicu. Sprawdź końcowy head na kilku trasach, zamiast zakładać, że wszystkie wpisy rodzica zostały połączone.

Dla ikony generowanej na żądanie Next.js obsługuje też icon.tsx lub icon.js. Funkcja zwraca dane obrazu z jawnym rozmiarem i typem zawartości. Zachowaj tę metodę dla naprawdę dynamicznych kompozycji: statyczny plik łatwiej buforować, sprawdzać i udostępniać spójnie między wdrożeniami.

Połącz manifest i jego ikony

Statyczny plik manifestu lub funkcja manifest.ts może opisywać nazwę aplikacji, kolory i instalowane ikony. Adresy ikon manifestu muszą być publiczne i wskazywać pliki o zadeklarowanych wymiarach.

Oddziel rolę manifestu od favicon karty: ikona instalacji 512×512 nie zastępuje automatycznie icon.svg ani favicon.ico.

Przetestuj w środowisku produkcyjnym

Uruchom kompilację produkcyjną, otwórz po jednej trasie z każdego objętego zmianą segmentu i sprawdź elementy link. Następnie otwórz bezpośrednio każdy URL pliku i potwierdź, że middleware go nie przechwytuje.

Jeśli korzystasz z basePath lub CDN, przetestuj wygenerowane adresy w środowisku wdrożeniowym. Zachowanie lokalne nie zawsze ujawnia błędną publiczną ścieżkę bazową lub regułę przepisywania.

Źródła pierwotne

Najczęstsze pytania

Czy trzeba ręcznie pisać elementy link?

Nie. Konwencje plików lub metadata.icons mogą je wygenerować. Wybierz jedno jasne źródło konfiguracji.

Gdzie umieścić favicon.ico?

W App Router konwencja favicon.ico jest obsługiwana w katalogu głównym app.

Czy manifest.ts zastępuje icon.svg?

Nie. Manifest opisuje między innymi instalowane ikony, natomiast icon.svg bezpośrednio dostarcza ikonę przeglądarki.

Zastosuj w praktyce

Generator tworzy pełny zestaw w kilka sekund, za darmo i bez wysyłania Twoich obrazów.

Wygeneruj pliki dla Next.js

Co przeczytać i wypróbować dalej

Pozostałe narzędzia LFFavicon i poradniki odpowiadające na najczęstsze pytania.

Narzędzia

Poradniki