Favicon dalam Next.js App Router

Ditulis oleh

App Router boleh menghasilkan elemen ikon daripada fail konvensyen atau objek metadata. Kedua-dua pendekatan sah, tetapi mencampurkannya tanpa peraturan jelas mudah mewujudkan pengisytiharan yang bersaing.

Pokok App Router yang menghubungkan fail ikon dengan halaman
Konvensyen fail mengikuti segmen laluan App Router.

Pilih konvensyen fail

Letakkan favicon.ico di akar app. Fail icon yang disokong boleh berada dalam segmen laluan, manakala apple-icon menerangkan ikon untuk peranti Apple.

Next.js mengesan fail ini, menentukan atribut yang berguna dan menambah elemen link sepadan ke dalam head. Ikon yang diletakkan dalam segmen terpakai pada laluan dalam segmen tersebut.

Konvensyen ikon App Router
FailLokasiTujuan
favicon.icoapp/Sandaran laman
icon.svgsegmen appIkon pelayar
apple-icon.pngsegmen appIkon Apple
manifest.webmanifestsegmen appManifes boleh pasang

Gunakan metadata untuk laluan yang jelas

Jika aset berada dalam public atau pada hos imej, isytiharkan metadata.icons dalam susun atur atau halaman. Nyatakan icon, apple dan, apabila perlu, shortcut menggunakan URL yang konsisten.

Metadata daripada segmen anak boleh menggantikan medan komposit yang diwarisi daripada induknya. Periksa head akhir pada beberapa laluan dan jangan menganggap semua entri induk telah digabungkan.

Untuk ikon yang dijana mengikut permintaan, Next.js turut menyokong icon.tsx atau icon.js. Fungsinya mengembalikan data imej dengan saiz dan jenis kandungan yang jelas. Gunakan pendekatan ini untuk gubahan yang benar-benar dinamik: fail statik lebih mudah dicache, diperiksa dan disampaikan secara konsisten merentas pelancaran.

Sambungkan manifes dan ikonnya

Fail manifes statik atau fungsi manifest.ts boleh menerangkan nama aplikasi, warna dan ikon boleh pasang. URL ikon manifes mesti awam dan merujuk fail dengan dimensi yang diisytiharkan.

Asingkan fungsi manifes daripada favicon tab: ikon pemasangan 512×512 tidak menggantikan icon.svg atau favicon.ico secara automatik.

Uji dalam produksi

Jalankan binaan produksi, buka satu laluan daripada setiap segmen yang terlibat dan periksa elemen link. Kemudian buka setiap URL aset secara terus dan pastikan middleware tidak memintasnya.

Jika anda menggunakan basePath atau CDN, uji URL yang dihasilkan dalam persekitaran yang telah dilancarkan. Tingkah laku setempat tidak sentiasa mendedahkan asas awam atau peraturan penulisan semula yang salah.

Sumber utama

Soalan lazim

Adakah elemen link perlu ditulis secara manual?

Tidak. Konvensyen fail atau metadata.icons boleh menjananya. Pilih satu sumber rujukan yang jelas.

Di manakah favicon.ico patut diletakkan?

Dengan App Router, konvensyen favicon.ico disokong di akar direktori app.

Adakah manifest.ts menggantikan icon.svg?

Tidak. Manifes menerangkan ikon boleh pasang serta data lain, manakala icon.svg menyediakan ikon pelayar secara terus.

Cubalah sendiri

Penjana menghasilkan set lengkap dalam beberapa saat, secara percuma dan tanpa memuat naik imej anda.

Jana aset untuk Next.js

Bacaan dan alat untuk dicuba seterusnya

Alat LFFavicon yang lain dan panduan yang menjawab soalan paling kerap ditanya.

Alat

Panduan