在 Next.js 网站分享至 Twitter 时,显示的"分享卡片"图片来源于页面的 Open Graph (OG) 元数据 。Twitter 主要读取 <meta>
标签中的 Open Graph 和 Twitter Card 信息,来生成分享卡片的标题、描述和图片。
如何配置分享卡片图片
1. 设置 Open Graph 和 Twitter Card 元数据
在 Next.js 项目中(假设使用 app 或 pages 目录),你可以在页面 <head>
中设置如下 <meta>
标签,例如在 _app.js
、_document.js
或具体页面组件中:
jsx
import Head from "next/head";
export default function YourPage() {
return (
<>
<Head>
{/* Open Graph 标签 */}
<meta property="og:title" content="页面标题" />
<meta property="og:description" content="页面描述" />
<meta property="og:image" content="https://yourdomain.com/path/to/og-image.jpg" />
<meta property="og:url" content="https://yourdomain.com/page-url" />
<meta property="og:type" content="website" />
{/* Twitter Card 标签 */}
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content="页面标题" />
<meta name="twitter:description" content="页面描述" />
<meta name="twitter:image" content="https://yourdomain.com/path/to/og-image.jpg" />
</Head>
{/* 页面内容 */}
</>
);
}
注意事项:
og:image
和twitter:image
推荐填写 绝对路径(带http/https) 的图片 URL(如https://yourdomain.com/path/to/image.jpg
),并确保图片已对外可访问。- 一般图片建议宽600 - 1200px,高315 - 630px,比例16:9 或 1.91:1。[官方文档推荐最小尺寸 300x157px,文件小于5MB,jpg/png/gif格式]
2. 针对多页面动态配置
如果你的页面是动态渲染(比如博客、产品页),可以在每个页面的 getStaticProps
或 getServerSideProps
里动态生成这些 meta 标签,或者通过 Head 组件 props 动态传入。
3. 检查与调试
- 清缓存 :Twitter 有缓存机制,需使用 Twitter Card Validator 工具清除缓存、验证新配置。
- Next.js SEO 插件 :可以用
next-seo
等库更便捷地配置元标签。
配置重点总结
- 核心在于
<meta property="og:image" ...>
和<meta name="twitter:image" ...>
标签,值为公开可访问的图片绝对URL。 - 推荐所有关键 Open Graph 和 Twitter Card 标签都一同配置。
- 修改配置后推送上线,并建议用 Twitter Card Validator 工具刷新并验证。
如需示例或进一步代码补充,可告知页面结构、图片来源或技术栈细节。