Next.js 16 App Router
تنفيذ صور OG والتحقق منها في تطبيق Next.js
اختر metadata الثابت، أو generateMetadata أو opengraph-image، واستخدم URLs المطلق العام وافحص النتيجة المنشورة.
اختر metadata المستند إلى الملف أو المستند إلى التعليمات البرمجية عمدًا
استخدم تصدير كائن metadata ثابتًا للقيم الثابتة وgenerateMetadata عندما تغير بيانات المسار العنوان أو الوصف أو الصورة. ينتمي كلا المصدرين إلى Server Components.
يمكن أن يوفر الملف المسمى opengraph-image metadata المستند إلى الملف. يمكن لـ opengraph-image.tsx الذي تم إنشاؤه إرجاع ImageResponse عندما تعتمد الصورة المرئية على بيانات المسار. لا تقم بتصدير metadata وgenerateMetadata الثابت من نفس مقطع المسار.
ثابت metadata مع metadataBase
يحل metadataBase عناوين metadata النسبية؛ ويسهّل URL العام المطلق مثل https://starterpackai.com/og/home.png التحقق من الصورة خارج التطبيق.
import type { Metadata } from 'next'
export const metadata: Metadata = {
metadataBase: new URL('https://starterpackai.com'),
title: 'A clear page title',
description: 'A concise share description',
openGraph: {
images: ['https://starterpackai.com/og/home.png'],
},
}معرفة الطريق generateMetadata في Next.js 16
في App Router ضمن Next.js 16، تكون params من نوع Promise؛ نفّذ await params قبل تحميل بيانات المسار وإرجاع generateMetadata.
import type { Metadata } from 'next'
type Props = { params: Promise<{ slug: string }> }
export async function generateMetadata({ params }: Props): Promise<Metadata> {
const { slug } = await params
const post = await getPost(slug)
return {
title: post.title,
openGraph: { images: [post.ogImageUrl] },
}
}ديناميكية opengraph-image مع ImageResponse
في ملف opengraph-image.tsx على الخادم، نفّذ await params ثم أرجع ImageResponse بأبعاد محددة.
import { ImageResponse } from 'next/og'
export const size = { width: 1200, height: 630 }
export const contentType = 'image/png'
export default async function Image({
params,
}: {
params: Promise<{ slug: string }>
}) {
const { slug } = await params
return new ImageResponse(
<div style={{ display: 'flex', padding: 80 }}>{slug}</div>,
size
)
}قائمة التحقق من النشر
- تأكد من تشغيل metadata أو generateMetadata في مقطع مسار مكون الخادم.
- افتح HTML المنشورة وتحقق من قيم og:title وog:description وog:image النهائية.
- افتح الصورة العامة المطلقة URL في جلسة منفصلة وتحقق من الاستجابة الناجحة للصورة.
- تحقق من تركيبة 1200×630 المعروضة بحجم بطاقة الارتباط الصغير.
- قم بتشغيل مدقق metadata العام، ثم استخدم مصححات الأخطاء الخاصة بالنظام الأساسي عندما تختلف ذاكرات التخزين المؤقت.
دليل Next.js
أسئلة OG في Next.js
أهم خيارات App Router للصفحات الثابتة والديناميكية.
هل أستخدم metadata أم generateMetadata؟
استخدم metadata للقيم الثابتة وgenerateMetadata عندما يعتمد المحتوى على بيانات المسار.
هل يمكن استخدام ملف opengraph-image؟
نعم. يدعم App Router البيانات الوصفية القائمة على الملفات، وتوفر واجهات metadata تحكمًا صريحًا أو ديناميكيًا.
لماذا يجب أن يكون رابط الصورة مطلقًا؟
تجلب برامج الزحف الصورة خارج جلسة المتصفح؛ الرابط العام المطلق واضح ويمكن الوصول إليه مباشرة.
أكمل سير عمل النشر Next.js
انشر الصورة والبيانات الوصفية معًا
أنشئ الأصل، وانسخ مقتطف Next.js، وتحقق من نتيجة النشر.
