opengraph-image et twitter-image
Les conventions de fichiers opengraph-image
et twitter-image
vous permettent de définir des images Open Graph et Twitter pour un segment de route.
Elles sont utiles pour définir les images qui apparaissent sur les réseaux sociaux et les applications de messagerie lorsqu'un utilisateur partage un lien vers votre site.
Il existe deux façons de définir les images Open Graph et Twitter :
- Utilisation de fichiers image (.jpg, .png, .gif)
- Utilisation de code pour générer des images (.js, .ts, .tsx)
Fichiers image (.jpg, .png, .gif)
Utilisez un fichier image pour définir l'image partagée d'un segment de route en plaçant un fichier image opengraph-image
ou twitter-image
dans le segment.
Next.js évaluera le fichier et ajoutera automatiquement les balises appropriées à l'élément <head>
de votre application.
Convention de fichier | Types de fichiers pris en charge |
---|---|
opengraph-image | .jpg , .jpeg , .png , .gif |
twitter-image | .jpg , .jpeg , .png , .gif |
opengraph-image.alt | .txt |
twitter-image.alt | .txt |
Bon à savoir :
La taille du fichier
twitter-image
ne doit pas dépasser 5Mo, et la taille du fichieropengraph-image
ne doit pas dépasser 8Mo. Si la taille de l'image dépasse ces limites, la construction échouera.
opengraph-image
Ajoutez un fichier image opengraph-image.(jpg|jpeg|png|gif)
à n'importe quel segment de route.
twitter-image
Ajoutez un fichier image twitter-image.(jpg|jpeg|png|gif)
à n'importe quel segment de route.
opengraph-image.alt.txt
Ajoutez un fichier opengraph-image.alt.txt
accompagnant dans le même segment de route que l'image opengraph-image.(jpg|jpeg|png|gif)
pour son texte alternatif.
twitter-image.alt.txt
Ajoutez un fichier twitter-image.alt.txt
accompagnant dans le même segment de route que l'image twitter-image.(jpg|jpeg|png|gif)
pour son texte alternatif.
Générer des images avec du code (.js, .ts, .tsx)
En plus d'utiliser des fichiers image littéraux, vous pouvez générer programmatiquement des images avec du code.
Générez l'image partagée d'un segment de route en créant une route opengraph-image
ou twitter-image
qui exporte par défaut une fonction.
Convention de fichier | Types de fichiers pris en charge |
---|---|
opengraph-image | .js , .ts , .tsx |
twitter-image | .js , .ts , .tsx |
Bon à savoir :
- Par défaut, les images générées sont optimisées statiquement (générées au moment de la construction et mises en cache) sauf si elles utilisent des APIs dynamiques ou des données non mises en cache.
- Vous pouvez générer plusieurs images dans le même fichier en utilisant
generateImageMetadata
.opengraph-image.js
ettwitter-image.js
sont des gestionnaires de route spéciaux qui sont mis en cache par défaut sauf s'ils utilisent une API dynamique ou une option de configuration dynamique.
La façon la plus simple de générer une image est d'utiliser l'API ImageResponse de next/og
.
Props
La fonction exportée par défaut reçoit les props suivantes :
params
(optionnel)
Un objet contenant l'objet paramètres de route dynamique depuis le segment racine jusqu'au segment où opengraph-image
ou twitter-image
est colocalisé.
Route | URL | params |
---|---|---|
app/shop/opengraph-image.js | /shop | undefined |
app/shop/[slug]/opengraph-image.js | /shop/1 | { slug: '1' } |
app/shop/[tag]/[item]/opengraph-image.js | /shop/1/2 | { tag: '1', item: '2' } |
Retours
La fonction exportée par défaut doit retourner un Blob
| ArrayBuffer
| TypedArray
| DataView
| ReadableStream
| Response
.
Bon à savoir :
ImageResponse
satisfait ce type de retour.
Exports de configuration
Vous pouvez optionnellement configurer les métadonnées de l'image en exportant les variables alt
, size
et contentType
depuis la route opengraph-image
ou twitter-image
.
Option | Type |
---|---|
alt | string |
size | { width: number; height: number } |
contentType | string - type MIME d'image |
alt
size
contentType
Configuration du segment de route
opengraph-image
et twitter-image
sont des gestionnaires de route spécialisés qui peuvent utiliser les mêmes options de configuration de segment de route que les pages et les layouts.
Exemples
Utilisation de données externes
Cet exemple utilise l'objet params
et des données externes pour générer l'image.
Bon à savoir : Par défaut, cette image générée sera optimisée statiquement. Vous pouvez configurer les
options
individuelles defetch
ou les options des segments de route pour modifier ce comportement.
Utilisation du runtime Node.js avec des ressources locales
Cet exemple utilise le runtime Node.js pour récupérer une image locale sur le système de fichiers et la passe en tant que ArrayBuffer
à l'attribut src
d'un élément <img>
. La ressource locale doit être placée relative à la racine de votre projet, plutôt qu'à l'emplacement du fichier source de l'exemple.
Historique des versions
Version | Changements |
---|---|
v13.3.0 | opengraph-image et twitter-image introduits. |