Open Graph Image und Twitter Image
Die Dateikonventionen opengraph-image
und twitter-image
ermöglichen es Ihnen, Open Graph- und Twitter-Bilder für ein Routensegment festzulegen.
Sie sind nützlich, um die Bilder zu definieren, die in sozialen Netzwerken und Messaging-Apps angezeigt werden, wenn ein Benutzer einen Link zu Ihrer Website teilt.
Es gibt zwei Möglichkeiten, Open Graph- und Twitter-Bilder festzulegen:
- Verwendung von Bilddateien (.jpg, .png, .gif)
- Verwendung von Code zur Bildgenerierung (.js, .ts, .tsx)
Bilddateien (.jpg, .png, .gif)
Verwenden Sie eine Bilddatei, um das geteilte Bild eines Routensegments festzulegen, indem Sie eine opengraph-image
- oder twitter-image
-Bilddatei im Segment platzieren.
Next.js wird die Datei auswerten und automatisch die entsprechenden Tags zum <head>
-Element Ihrer App hinzufügen.
Dateikonvention | Unterstützte Dateitypen |
---|---|
opengraph-image | .jpg , .jpeg , .png , .gif |
twitter-image | .jpg , .jpeg , .png , .gif |
opengraph-image.alt | .txt |
twitter-image.alt | .txt |
Wissenswert:
Die Dateigröße von
twitter-image
darf 5MB nicht überschreiten, und die Dateigröße vonopengraph-image
darf 8MB nicht überschreiten. Wenn die Bilddateigröße diese Grenzen überschreitet, schlägt der Build fehl.
opengraph-image
Fügen Sie eine opengraph-image.(jpg|jpeg|png|gif)
-Bilddatei zu einem beliebigen Routensegment hinzu.
twitter-image
Fügen Sie eine twitter-image.(jpg|jpeg|png|gif)
-Bilddatei zu einem beliebigen Routensegment hinzu.
opengraph-image.alt.txt
Fügen Sie eine begleitende opengraph-image.alt.txt
-Datei im gleichen Routensegment wie die opengraph-image.(jpg|jpeg|png|gif)
-Bilddatei hinzu, um den Alt-Text festzulegen.
twitter-image.alt.txt
Fügen Sie eine begleitende twitter-image.alt.txt
-Datei im gleichen Routensegment wie die twitter-image.(jpg|jpeg|png|gif)
-Bilddatei hinzu, um den Alt-Text festzulegen.
Bilder mit Code generieren (.js, .ts, .tsx)
Zusätzlich zur Verwendung von Bilddateien können Sie Bilder auch programmatisch generieren.
Generieren Sie das geteilte Bild eines Routensegments, indem Sie eine opengraph-image
- oder twitter-image
-Route erstellen, die eine Funktion als Standardexport bereitstellt.
Dateikonvention | Unterstützte Dateitypen |
---|---|
opengraph-image | .js , .ts , .tsx |
twitter-image | .js , .ts , .tsx |
Wissenswert:
- Standardmäßig werden generierte Bilder statisch optimiert (zum Build-Zeitpunkt generiert und zwischengespeichert), es sei denn, sie verwenden Dynamische APIs oder nicht zwischengespeicherte Daten.
- Sie können mehrere Bilder in derselben Datei mit
generateImageMetadata
generieren.opengraph-image.js
undtwitter-image.js
sind spezielle Route Handler, die standardmäßig zwischengespeichert werden, es sei denn, sie verwenden eine Dynamische API oder eine dynamische Konfigurationsoption.
Der einfachste Weg, ein Bild zu generieren, ist die Verwendung der ImageResponse-API aus next/og
.
Props
Die Standardexport-Funktion erhält folgende Props:
params
(optional)
Ein Objekt, das das dynamische Routenparameter-Objekt vom Root-Segment bis zu dem Segment enthält, in dem sich opengraph-image
oder twitter-image
befindet.
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' } |
Rückgabewerte
Die Standardexport-Funktion sollte einen Blob
| ArrayBuffer
| TypedArray
| DataView
| ReadableStream
| Response
zurückgeben.
Wissenswert:
ImageResponse
erfüllt diesen Rückgabetyp.
Konfigurations-Exports
Sie können optional die Metadaten des Bildes konfigurieren, indem Sie die Variablen alt
, size
und contentType
aus der opengraph-image
- oder twitter-image
-Route exportieren.
Option | Typ |
---|---|
alt | string |
size | { width: number; height: number } |
contentType | string - image MIME type |
alt
size
contentType
Routensegment-Konfiguration
opengraph-image
und twitter-image
sind spezialisierte Route Handlers, die dieselben Routensegment-Konfigurationsoptionen wie Seiten und Layouts verwenden können.
Beispiele
Verwendung externer Daten
Dieses Beispiel verwendet das params
-Objekt und externe Daten, um das Bild zu generieren.
Wissenswert: Standardmäßig wird dieses generierte Bild statisch optimiert. Sie können die individuellen
fetch
-Optionen
oder Routensegment-Optionen konfigurieren, um dieses Verhalten zu ändern.
Verwendung der Node.js-Laufzeitumgebung mit lokalen Assets
Dieses Beispiel verwendet die Node.js-Laufzeitumgebung, um ein lokales Bild im Dateisystem zu laden und als ArrayBuffer
an das src
-Attribut eines <img>
-Elements zu übergeben. Das lokale Asset sollte relativ zum Stammverzeichnis Ihres Projekts platziert werden, nicht relativ zum Speicherort der Quelldatei.
Versionsverlauf
Version | Änderungen |
---|---|
v13.3.0 | opengraph-image und twitter-image eingeführt. |