Comment optimiser les images
Le composant <Image>
de Next.js étend l'élément HTML <img>
pour fournir :
- Optimisation de taille : Servir automatiquement des images de la bonne taille pour chaque appareil, en utilisant des formats modernes comme WebP.
- Stabilité visuelle : Empêcher automatiquement le décalage de mise en page (layout shift) lors du chargement des images.
- Chargement plus rapide des pages : Ne charger les images que lorsqu'elles entrent dans la zone visible grâce au chargement différé natif du navigateur, avec des placeholders de flou optionnels.
- Flexibilité des assets : Redimensionner les images à la demande, même celles stockées sur des serveurs distants.
Pour commencer à utiliser <Image>
, importez-le depuis next/image
et utilisez-le dans votre composant.
La propriété src
peut être une image locale ou distante.
🎥 Regardez : En savoir plus sur l'utilisation de
next/image
→ YouTube (9 minutes).
Images locales
Vous pouvez stocker des fichiers statiques, comme des images et des polices, dans un dossier appelé public
à la racine du projet. Les fichiers dans public
peuvent ensuite être référencés dans votre code à partir de l'URL de base (/
).

Images importées statiquement
Vous pouvez aussi importer et utiliser des fichiers image locaux. Next.js déterminera automatiquement la width
et la height
intrinsèques de votre image en fonction du fichier importé. Ces valeurs sont utilisées pour déterminer le ratio de l'image et éviter un décalage de mise en page cumulatif (Cumulative Layout Shift) pendant le chargement de votre image.
Dans ce cas, Next.js s'attend à ce que le fichier app/profile.png
soit disponible.
Images distantes
Pour utiliser une image distante, vous pouvez fournir une URL sous forme de chaîne pour la propriété src
.
Comme Next.js n'a pas accès aux fichiers distants pendant la phase de build, vous devez fournir manuellement les propriétés width
, height
et optionnellement blurDataURL
. width
et height
sont utilisés pour déduire le bon ratio d'aspect de l'image et éviter un décalage de mise en page lors du chargement.
Pour autoriser en toute sécurité les images provenant de serveurs distants, vous devez définir une liste de modèles d'URL pris en charge dans next.config.js
. Soyez aussi spécifique que possible pour éviter les utilisations malveillantes. Par exemple, la configuration suivante n'autorise que les images provenant d'un bucket AWS S3 spécifique :