首页/文章/前端

Open Graph Image介绍

2025-10-12
18667 分钟
...

一、什么是 OG 图

OG 图(Open Graph Image)是网页在社交媒体上分享时展示的预览缩略图(Preview Image)
OG 来自于 Open Graph Protocol(开放图谱协议),最初由 Facebook 提出,后来被 Twitter、LinkedIn、Discord、Telegram 等平台广泛采用。

当你在社交媒体上粘贴一个网页链接时,系统会自动抓取该网页的 OG 元数据,从而生成一个包含标题、描述和预览图的卡片式展示。
其中最醒目的部分,就是这张 OG 图(og:image


二、OG 元信息的基本格式

在网页 <head> 中声明 Open Graph 元信息:

<meta property="og:title" content="我的技术博客 - Dropkit Tech">
<meta property="og:description" content="探索前端、后端与游戏开发的边界。">
<meta property="og:type" content="website">
<meta property="og:url" content="https://dropkit.tech">
<meta property="og:image" content="https://dropkit.tech/og/cover.png">
<meta property="og:image:width" content="1200">
<meta property="og:image:height" content="630">
<meta property="og:locale" content="zh_CN">

这些标签通常包括:

属性 含义 示例


og:title 页面标题 我的技术博客 og:description 简短摘要 探索前端与服务端的极限 og:type 内容类型 websitearticlevideoog:url 当前页面 URL https://dropkit.tech/post/vue-reactive og:image 预览图地址 https://dropkit.tech/og/vue-reactive.png og:image:width 图片宽度 1200 og:image:height 图片高度 630

💡 典型的 OG 图尺寸是 1200×630px(16:9 比例),在 Facebook、LinkedIn、Telegram 等平台都显示良好。


三、为什么 OG 图很重要

OG 图不仅仅是"分享时好看",它直接影响:

  1. 点击率(CTR)提升
    一张设计感强的预览图能显著提高链接点击率。\
  2. 品牌一致性
    统一的风格(字体、颜色、Logo)让你的分享链接更具辨识度。\
  3. SEO 与社交媒体可见度
    虽然搜索引擎不直接读取 OG 图,但社交点击与二次传播对 SEO 有间接帮助。\
  4. 可编程生成(动态化)
    通过服务端生成个性化 OG 图,实现更智能的分享体验(如博客自动生成标题封面)。

四、OG 图的生成方式

1. 静态方式

直接使用设计好的固定图片,放置于 /public/og/ 目录:

<meta property="og:image" content="https://dropkit.tech/og/default.png">

适用于: - 固定内容页(如首页、关于页) - 产品 Landing Page


2. 动态生成(推荐)

动态 OG 图可在构建或访问时自动生成标题封面,常用于博客或动态内容网站。

常见技术方案:

🟩 前端预渲染工具(Astro、Next、Nuxt)

在构建时为每篇文章生成独立的 OG 图。

  • Astro 示例
// src/pages/api/og/[slug].ts
import { Resvg } from '@resvg/resvg-js';
import satori from 'satori';
import React from 'react';
import OgCard from '../../../lib/og/ogCard';

export async function GET({ params }) {
  const svg = await satori(<OgCard title={params.slug} />, {
    width: 1200,
    height: 630,
    fonts: [{ name: 'Inter', data: await fetchFont('Inter.ttf'), weight: 400 }],
  });

  const resvg = new Resvg(svg);
  const png = resvg.render().asPng();
  return new Response(png, { headers: { 'Content-Type': 'image/png' } });
}

然后在 <head> 中写:

<meta property="og:image" content="https://dropkit.tech/api/og/my-post-title.png">

这样每篇文章分享时都会显示自己的封面图。

🟦 服务端生成(Go、Node)

例如使用 Go 的 go-opengraph-image 或 Node 的 puppeteer 截图生成。

可以在后端根据数据库内容(标题、作者、标签)实时绘制一张 OG 图缓存到 CDN。


五、Twitter 专属标签

Twitter(现在的 X)有自己的 twitter: 元标签:

<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="我的技术博客">
<meta name="twitter:description" content="记录技术与生活">
<meta name="twitter:image" content="https://dropkit.tech/og/default.png">

如果你同时设置了 Open Graph 和 Twitter 标签,大多数平台会优先使用各自专属的标签。


六、OG 图设计建议

  1. 分辨率:1200×630px(16:9),至少宽度 ≥ 600px\
  2. 安全区留白:避免重要内容靠边,防止平台裁切\
  3. 文字对比:深浅分明、避免透明背景\
  4. 风格一致:博客可统一底图模板 + 文章标题自动叠加\
  5. 包含品牌元素:Logo / 域名 / 标识色

七、常见问题(FAQ)

Q1. Telegram 或微信分享时不显示 OG 图?
👉 检查: - 链接必须是 HTTPS; - 图片 URL 可公开访问; - <meta> 标签需在 <head> 顶部优先加载; - 对于 SSR/SSG 页面,确保 meta 未被客户端替换。

Q2. OG 图更新后不生效?
👉 清理社交平台缓存: - Facebook:Sharing Debugger - Twitter:Card Validator - Telegram:重新发送链接(它会自动刷新缓存)


八、进阶:OG 动态渲染模板设计(Astro 示例)

你可以自定义一个 React 模板组件作为 OG 卡片:

// src/lib/og/ogCard.tsx
export default function OgCard({ title }: { title: string }) {
  return (
    <div
      style={{
        width: '1200px',
        height: '630px',
        background: 'linear-gradient(135deg, #0f172a, #1e293b)',
        color: '#fff',
        display: 'flex',
        flexDirection: 'column',
        justifyContent: 'center',
        padding: '80px',
        fontFamily: 'Inter',
      }}
    >
      <h1 style={{ fontSize: '72px', margin: 0 }}>{title}</h1>
      <p style={{ fontSize: '28px', opacity: 0.8 }}>dropkit.tech</p>
    </div>
  );
}

这样生成的 OG 图就既美观又统一风格。


九、总结


类别 内容


名称 Open Graph Image (OG 图)

作用 分享预览图、提升点击率、品牌识别

推荐尺寸 1200×630 px

生成方式 静态 / 动态(Satori + Resvg / Puppeteer 等)

兼容平台 Facebook / Twitter / Telegram / Discord / LinkedIn / 微信等

OG 图是一个小投入、高收益的优化点,
尤其对技术博客、产品宣传页、作品集网站等,能显著提升传播效果。
建议每篇文章都自动生成属于它的封面,让分享更具专业感和辨识度。

如果您觉得这篇文章有帮助,请点个赞吧~

分享文章

相关文章

更多文章 →
前端2026-07-17
HTML Form 可以把 POST 响应加载进 iframe
在接入支付验证、身份认证或第三方授权页面时,我们经常会遇到这样的流程: 1. 后端返回一个第三方接口地址。 2. 这个地址必须通过 请求访问。 3. 接口返回 HTML,或者重定向到真正的验证页面。 4. 验证页面需要嵌入当前网站,而不是打开新标签页。 5. 验证完成后,当前页面继续执行后续业务。 第一次遇到这个需求,很容易想到: 但涉及第三方支付时,这种方式通常会遇到 CORS、Cookie、重定向和跨域页面读取限制。 实际上,HTM...
学习
前端2026-05-29
前端判断一个网页是否允许被 iframe 内嵌
前端 不能 100% 准确提前判断 一个网页是否允许被 iframe 内嵌,因为决定权主要在目标网站返回的 HTTP 响应头 里,而普通前端 JS 通常读不到跨域页面的响应头。 核心判断看这两个东西: 1. 老一点但仍常见。 表示完全不允许被 iframe 嵌入。 表示只允许同源页面 iframe 嵌入。 以前有这个,但现代浏览器支持很差,基本不建议依赖。 2. 现在更推荐看这个。 表示不允许任何页面嵌入。 表示只允许同源嵌入。 表示只...
学习
前端2026-03-20
网页唤起 Android App 调试笔记(App Links)
&nbsp; 在最近的项目中,我遇到了 网页访问特定 URL 应该唤起 Android App,但实际只打开网页 的问题。通过调试和排查,整理出以下经验和步骤。 1\. 项目与环境信息(脱敏处理) 网站域名: 唤起页面: Android App 包名: intent filter 配置示例: assetlinks.json 已上线,包含 App 的 SHA256 签名指纹 2\. 问题现象 用户访问 页面时, 网页打开了,但 App 没...
学习
前端2026-03-02
深入理解 Cookie:安全属性、访问边界与渲染场景实践
本文系统梳理 Cookie 核心机制,聚焦 HttpOnly/SameSite 等安全属性 、 访问权限边界 、 CSR/SSR 差异 ,附关键代码示例与安全清单。适合开发查阅与知识沉淀。 一、Cookie 是什么?为什么需要它? HTTP 是无状态协议。Cookie 是服务端通过 响应头下发、浏览器自动存储并在后续 同源请求中携带 的小型文本数据(通常 ≤4KB),用于: 会话维持(Session ID) 用户偏好(语言/主题) 跨请...
学习
前端2026-03-02
退出登录时 Cookie 清除指南
核心结论 :登出 ≠ 单方面操作。HttpOnly 与非 HttpOnly Cookie 需 前后端协同清除 ,缺一不可。残留 Cookie = 安全隐患 + 用户体验漏洞。 🔒 为什么不能“一键清空”? 浏览器出于安全设计: 后端 :只能通过 响应头清除 自己设置过 的 Cookie(需属性完全匹配) 前端 JS :可读写非 HttpOnly Cookie,但 无法触碰 HttpOnly Cookie 无“清除全部”API :任何服...
学习
前端2025-12-15
懒加载图片在同一个 Item 中逐个出现的原因与解决方案
懒加载图片在同一个 Item 中逐个出现的原因与解决方案 适用场景 :使用原生 实现图片懒加载的动态列表,每个列表项(item)包含多张图片。 📌 问题描述 在开发一个动态渲染的列表时,每个 item 中包含三张图片,并使用 HTML 原生的懒加载属性: 观察到的现象: 开启懒加载时 :三张图片 不是同时出现 ,而是 从左到右(或从上到下)依次加载显示 ,有明显的时间差。 关闭懒加载(移除 )后 :三张图片 看起来是一起出现的 ,视觉...
学习

评论

请登录后发表评论

去登录
加载评论中...

目录