为什么分享 GitHub 链接时会出现 opengraph.githubassets.com 的图片?

更新时间

opengraph.githubassets.com 是 GitHub 用来托管链接预览图的域名。当你在微信、X(Twitter)、Slack、Discord、飞书等平台粘贴一个 GitHub 链接时,平台会自动抓取该页面并显示一张 1200 × 630 像素的卡片图,这张图的地址就指向这个域名。它不是独立网站,也没有可浏览的首页,你直接打开只会得到一张 PNG 图片。

这张图是怎么来的

社交平台在渲染链接卡片时,会读取目标页面 HTML 里的 Open Graph 元标签,其中 og:image 指定了预览图的地址。GitHub 为仓库、Issue、Pull Request、用户主页等页面自动生成对应的预览图,并把 og:image 指向 opengraph.githubassets.com 下的图片。

整个链路是:

  1. 你把 https://github.com/用户名/仓库名 粘贴到聊天或社交平台。
  2. 平台服务器抓取该页面,解析出 og:image。
  3. 平台按这个地址下载图片并缓存,展示成卡片。
  4. 图片内容由 GitHub 生成,分享者无法在分享时替换。

预览图里通常有什么

GitHub 自动生成的卡片一般会包含页面的摘要信息,例如:

  • 仓库的完整名称(owner/repo)
  • 仓库描述
  • 主要编程语言的统计色块
  • 星标、Fork 等数量
  • GitHub 的标识与背景样式

Issue 和 Pull Request 页面则会显示标题、编号、状态(open/closed)等信息。具体版式由 GitHub 决定,可能随其前端更新而变化。

几个常见疑问

为什么图片打不开或显示空白? 图片地址通常带有签名或哈希参数,直接访问有时会返回错误。它主要是给社交平台的抓取器使用的,不保证对普通浏览器长期有效。

能改成我自己的图吗? 不能。预览图由 GitHub 根据页面数据自动生成,仓库所有者无法通过设置替换这张图。想控制分享时的卡片样式,只能改用自己搭建的页面并自行配置 og:image。

为什么同一链接在不同平台显示不一样? 各平台有自己的抓取和缓存策略。有的平台缓存时间较长,仓库信息更新后卡片可能仍是旧图;有的平台对图片尺寸或格式有额外要求,可能不显示或裁剪。

这是不是钓鱼或仿冒域名? opengraph.githubassets.com 是 GitHub 官方用于资源托管的子域名,属于正常现象。判断链接是否安全,应看被分享的主链接(通常是 github.com/...),而不是这张预览图的域名。

一句话结论

看到 opengraph.githubassets.com,说明某个 GitHub 页面被分享到了支持链接预览的平台,平台正在展示 GitHub 自动生成的摘要卡片——它是预览图,不是你需要访问的网站。