Favicon с Next.js App Router

Автор

App Router може да създаде тагове за икони от файлове по конвенция или от обекта metadata. Двата подхода са валидни, но смесването им без ясни правила лесно води до конкуриращи се декларации.

Дървовидна структура на App Router, свързваща файлове с икони към страниците
Файловите конвенции следват сегментите на маршрутите в App Router.

Избор на файлови конвенции

Поставете favicon.ico в основата на app. Файловете icon с поддържано разширение могат да се намират в сегмент на маршрут, а apple-icon описва иконата за устройства Apple.

Next.js открива тези файлове, определя необходимите атрибути и добавя съответните елементи link в head. Икона, поставена в сегмент, се прилага за маршрутите в този сегмент.

Конвенции за икони в App Router
ФайлМестоположениеУпотреба
favicon.icoapp/Резервна икона на сайта
icon.svgсегмент app/Икона на браузъра
apple-icon.pngсегмент app/Икона за Apple
manifest.webmanifestсегмент app/Манифест за инсталиране

Използвайте metadata за изрични пътища

Ако ресурсите ви са в public или на хост за изображения, декларирайте metadata.icons в layout или страница. Задайте icon, apple и при нужда shortcut със съгласувани URL адреси.

Метаданните на дъщерен сегмент могат да заменят наследени съставни полета. Затова проверете крайния head на няколко маршрута, вместо да приемате, че всеки запис от родителя е обединен.

За икона, генерирана при заявка, Next.js приема и icon.tsx или icon.js. Функцията връща данни за изображение с изрични размер и тип. Използвайте този подход за действително динамични композиции: статичният файл е по-лесен за кеширане и проверка.

Свързване на манифеста и иконите му

Статичен manifest файл или функция manifest.ts може да описва името на приложението, цветовете и иконите за инсталиране. URL адресите на иконите в манифеста трябва да са публични и да сочат към декларираните размери.

Разграничавайте ролята на манифеста от favicon в раздела: икона 512×512 за инсталиране не заменя автоматично icon.svg или favicon.ico.

Тестване в продукционна среда

Изпълнете продукционна компилация, отворете маршрут от всеки засегнат сегмент и проверете елементите link. После проверете директно всеки URL на ресурс и потвърдете, че не е прихванат от middleware.

Ако използвате basePath или CDN, тествайте генерираните URL адреси в публикуваната среда. Локалното поведение невинаги разкрива неправилен публичен основен път или правило за пренаписване.

Първоизточници

Често задавани въпроси

Трябва ли да пиша таговете link ръчно?

Не. Файловите конвенции или metadata.icons могат да ги генерират. Изберете един ясен източник на настройките.

Къде да поставя favicon.ico?

При App Router конвенцията favicon.ico се поддържа в основната директория на папката app.

manifest.ts заменя ли icon.svg?

Не. Манифестът описва, наред с друго, иконите за инсталиране, докато icon.svg предоставя директно иконата на браузъра.

Изпробвайте на практика

Генераторът създава пълния комплект за секунди, безплатно и без да изпраща изображенията ви.

Генерирайте ресурсите за Next.js

Какво още да прочетете и изпробвате

Другите инструменти на LFFavicon и ръководства с отговори на най-честите въпроси.

Инструменти

Ръководства