Ressources statiques
Next.js peut servir des ressources statiques, comme des images, situées dans le répertoire public
de premier niveau. Les fichiers à l'intérieur de public
peuvent être référencés depuis la racine de l'application, de manière similaire aux pages
.
Le répertoire public
est également utile pour robots.txt
, la vérification Google Site Verification et toute autre ressource statique. Consultez la documentation sur le service de fichiers statiques pour en savoir plus.
Télécharger votre photo de profil
Commencez par récupérer votre photo de profil.
- Téléchargez votre photo de profil au format
.jpg
(ou utilisez ce fichier). - Créez un répertoire
images
à l'intérieur du répertoirepublic
. - Enregistrez l'image sous le nom
profile.jpg
dans le répertoirepublic/images
. - La taille de l'image peut être d'environ 400px par 400px.
- Vous pouvez supprimer le fichier SVG de logo inutilisé directement sous le répertoire
public
.
Image non optimisée
Avec du HTML classique, vous ajouteriez votre photo de profil comme suit :
<img src="/images/profile.jpg" alt="Your Name" />
Cependant, cela signifie que vous devez gérer manuellement :
- L'adaptation de votre image à différentes tailles d'écran
- L'optimisation de vos images avec un outil ou une bibliothèque tierce
- Le chargement des images uniquement lorsqu'elles entrent dans le viewport
Et bien plus encore. À la place, Next.js fournit un composant Image
prêt à l'emploi pour gérer cela pour vous.
Composant Image et optimisation d'image
next/image
est une extension de l'élément HTML <img>
, évolué pour le web moderne.
Next.js prend également en charge l'optimisation d'image par défaut. Cela permet de redimensionner, optimiser et servir des images dans des formats modernes comme WebP lorsque le navigateur le supporte. Cela évite d'envoyer des images volumineuses à des appareils avec un viewport plus petit. Cela permet également à Next.js d'adopter automatiquement les futurs formats d'image et de les servir aux navigateurs qui les supportent.
L'optimisation automatique des images fonctionne avec n'importe quelle source d'image. Même si l'image est hébergée par une source de données externe, comme un CMS, elle peut toujours être optimisée.
Utilisation du composant Image
Au lieu d'optimiser les images au moment de la construction, Next.js optimise les images à la demande, lorsque les utilisateurs les demandent. Contrairement aux générateurs de sites statiques et aux solutions uniquement statiques, vos temps de construction n'augmentent pas, que vous livriez 10 images ou 10 millions d'images.
Les images sont chargées en différé (lazy loaded) par défaut. Cela signifie que la vitesse de votre page n'est pas pénalisée pour les images en dehors du viewport. Les images se chargent lorsqu'elles apparaissent dans le viewport.
Les images sont toujours rendues de manière à éviter le Cumulative Layout Shift, un Core Web Vital que Google va utiliser dans le classement des recherches.
Voici un exemple utilisant next/image
pour afficher notre photo de profil. Les props height
et width
doivent correspondre à la taille de rendu souhaitée, avec un rapport d'aspect identique à celui de l'image source.
Remarque : Nous utiliserons ce composant plus tard dans "Polissage de la mise en page", inutile de le copier pour l'instant.
import Image from 'next/image';
const YourComponent = () => (
<Image
src="/images/profile.jpg" // Chemin du fichier image
height={144} // Taille souhaitée avec le bon rapport d'aspect
width={144} // Taille souhaitée avec le bon rapport d'aspect
alt="Your Name"
/>
);
Pour en savoir plus sur l'optimisation automatique des images, consultez la documentation.
Pour en savoir plus sur le composant
Image
, consultez la référence API denext/image
.