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τμήμα appManifest εγκατάστασης

Χρησιμοποιήστε metadata για ρητές διαδρομές

Αν τα αρχεία βρίσκονται στο public ή σε διακομιστή εικόνων, δηλώστε metadata.icons σε layout ή σελίδα. Ορίστε icon, apple και, όπου χρειάζεται, shortcut με συνεπείς URL.

Τα metadata θυγατρικού τμήματος μπορούν να αντικαταστήσουν σύνθετα πεδία που κληρονομούνται από το γονικό. Εξετάστε το τελικό head σε διάφορες διαδρομές αντί να θεωρήσετε ότι όλες οι γονικές εγγραφές συγχωνεύτηκαν.

Για εικονίδιο που δημιουργείται κατ’ απαίτηση, το Next.js υποστηρίζει επίσης icon.tsx ή icon.js. Η συνάρτηση επιστρέφει δεδομένα εικόνας με ρητό μέγεθος και τύπο περιεχομένου. Κρατήστε αυτή την προσέγγιση για πραγματικά δυναμικές συνθέσεις: ένα στατικό αρχείο αποθηκεύεται, εξετάζεται και σερβίρεται πιο απλά και με συνέπεια μεταξύ δημοσιεύσεων.

Συνδέστε το manifest και τα εικονίδιά του

Ένα στατικό manifest ή μια συνάρτηση manifest.ts μπορεί να περιγράφει όνομα εφαρμογής, χρώματα και εικονίδια εγκατάστασης. Οι URL των εικονιδίων manifest πρέπει να είναι δημόσιες και να δείχνουν σε αρχεία με τις δηλωμένες διαστάσεις.

Κρατήστε ξεχωριστό τον ρόλο του manifest από το favicon καρτέλας: ένα εικονίδιο εγκατάστασης 512×512 δεν αντικαθιστά αυτόματα τα icon.svg ή favicon.ico.

Δοκιμή στην παραγωγή

Εκτελέστε build παραγωγής, ανοίξτε μία διαδρομή από κάθε επηρεαζόμενο τμήμα και εξετάστε τα στοιχεία link. Έπειτα ανοίξτε απευθείας κάθε URL αρχείου και επιβεβαιώστε ότι το middleware δεν παρεμβαίνει.

Αν χρησιμοποιείτε basePath ή CDN, δοκιμάστε τις παραγόμενες URL στο δημοσιευμένο περιβάλλον. Η τοπική συμπεριφορά δεν αποκαλύπτει πάντα λανθασμένη δημόσια βάση ή κανόνα επανεγγραφής.

Πρωτογενείς πηγές

Συχνές ερωτήσεις

Χρειάζεται να γράψετε στοιχεία link με το χέρι;

Όχι. Οι συμβάσεις αρχείων ή το metadata.icons μπορούν να τα παράγουν. Επιλέξτε μία σαφή πηγή αλήθειας.

Πού πρέπει να μπει το favicon.ico;

Στο App Router, η σύμβαση favicon.ico υποστηρίζεται στη ρίζα του καταλόγου app.

Αντικαθιστά το manifest.ts το icon.svg;

Όχι. Το manifest περιγράφει μεταξύ άλλων τα εικονίδια εγκατάστασης, ενώ το icon.svg εξυπηρετεί απευθείας το εικονίδιο του προγράμματος περιήγησης.

Δοκιμάστε το στην πράξη

Το εργαλείο δημιουργεί το πλήρες σύνολο σε δευτερόλεπτα, δωρεάν και χωρίς μεταφόρτωση των εικόνων σας.

Δημιουργήστε αρχεία για Next.js

Τι να διαβάσετε και να δοκιμάσετε στη συνέχεια

Τα άλλα εργαλεία του LFFavicon και οι οδηγοί που απαντούν στις πιο συχνές ερωτήσεις.

Εργαλεία

Οδηγοί