Discord 嵌入内容未显示或未更新

Discord 会抓取该页面一次,读取服务器 HTML 中的标签,并将嵌入内容缓存约 30 分钟。它绝不会运行您的 JavaScript。

最后更新

快速修复


  1. 使用 meta 标签检查工具检查页面。

  2. 在 HTML 中提供这些标签,并确保在 10 秒内完成 2xx 响应。

  3. 添加 twitter:card summary_large_image 以显示大图。

  4. 在 Discord 的嵌入调试器 (Embed Debugger) 中测试,或带有 ?v=2 发布。


为什么 Discord 嵌入卡片缺失或显示旧内容

  • 标签由 JavaScript 生成。Discord 不会执行任何代码,因此页面加载后添加的标签永远无法被读取。

  • 响应状态码不是 2xx。最多支持 5 次重定向,但最终响应必须是带有 text/html 的 2xx 状态码。

  • 抓取速度太慢。包括测量图片和视频在内的整个抓取过程必须在 10 秒内完成。

  • Bot 防护拦截了 Discordbot。页面抓取时的 User-Agent 包含 Discordbot/2.0。

  • Discord 缓存了旧的嵌入卡片。预览内容会缓存约 30 分钟。

如何解决

  1. 使用 meta 标签检查工具读取标签。

  2. 在服务器端渲染 og:title、og:description 和 og:image。

  3. 添加 og:image:width 和 og:image:height,这样 Discord 就无需拉取图片来测量尺寸。

  4. 如果你希望在文本下方显示大图,请将 twitter:card 设置为 summary_large_image。

  5. 在 CDN 中放行 Discordbot,然后在 Embed Debugger 中测试,或在发布 URL 时附加 ?v=2。

Discord 读取的标签

  • og:title 或 twitter:title,截断至 70 字节

  • og:description 或 twitter:description,截断至 350 字节

  • og:site_name 显示在标题上方

  • og:image 或 twitter:image;两个或更多 og:image 标签会生成最多 4 张图片的图库

  • 用于侧边强调条的 theme-color,格式为 #RRGGBB 或 #RRGGBBAA

  • 用于布局的 twitter:card 和 og:type

图片尺寸规则

  • 格式:PNG、GIF、JPG、WebP 和 AVIF

  • 声明 og:image:width 和 og:image:height

  • 每个链接最多 4 张图片

  • 整个抓取过程需在 10 秒和 50 MB 以内完成

未经验证:Discord 未公布最小或推荐像素尺寸。1200 x 630 像素是一个安全的选择。

如何强制刷新

Discord 会将预览缓存约 30 分钟。要立即查看更改,请使用新的查询字符串(例如 ?v=2)分享该 URL,或者在 Embed Debugger 中查看。刷新工具展示了适用于每个应用的具体步骤。

来源

常见问题

为什么 Discord 显示的是缩略图而不是大图?

如果没有布局标签,Discord 会显示带有小图的文本。将 twitter:card 设置为 summary_large_image 即可使用大图布局。

Discord 缓存嵌入内容多长时间?

根据 Discord 的开发者文档,大约需要 30 分钟。请使用新的查询字符串来测试更改。

Discord 在构建嵌入内容(embed)时会运行 JavaScript 吗?

不是。Discord 不会执行任何代码,因此这些标签必须包含在服务器发送的 HTML 中。

检查您的页面,然后刷新预览

将您的网址粘贴到免费检查器中,查看各个应用程序读取的具体标签。标签确认无误后,使用刷新工具清除旧的预览。