Discord 嵌入内容未显示或未更新
Discord 会抓取该页面一次,读取服务器 HTML 中的标签,并将嵌入内容缓存约 30 分钟。它绝不会运行您的 JavaScript。
最后更新
快速修复
使用 meta 标签检查工具检查页面。
在 HTML 中提供这些标签,并确保在 10 秒内完成 2xx 响应。
添加 twitter:card summary_large_image 以显示大图。
在 Discord 的嵌入调试器 (Embed Debugger) 中测试,或带有 ?v=2 发布。
为什么 Discord 嵌入卡片缺失或显示旧内容
标签由 JavaScript 生成。Discord 不会执行任何代码,因此页面加载后添加的标签永远无法被读取。
响应状态码不是 2xx。最多支持 5 次重定向,但最终响应必须是带有
text/html的 2xx 状态码。抓取速度太慢。包括测量图片和视频在内的整个抓取过程必须在 10 秒内完成。
Bot 防护拦截了 Discordbot。页面抓取时的 User-Agent 包含
Discordbot/2.0。Discord 缓存了旧的嵌入卡片。预览内容会缓存约 30 分钟。
如何解决
使用 meta 标签检查工具读取标签。
在服务器端渲染
og:title、og:description和og:image。添加
og:image:width和og:image:height,这样 Discord 就无需拉取图片来测量尺寸。如果你希望在文本下方显示大图,请将
twitter:card设置为summary_large_image。在 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 中。
相关指南
Slack 链接预览无法正常工作或未更新
Slack 通过机器人读取 oEmbed、Open Graph 和 Twitter Card 标签来展开链接预览。抓取结果会在 Slack 中缓存约 30 分钟。
X (Twitter) 卡片未显示或未更新
X 会优先根据 twitter: 标签生成卡片预览,如果不存在则会回退使用 og: 标签。现在已经不再提供可以刷新缓存的验证工具了,因此解决方法就是配置正确的标签,并使用一个全新的 URL。
WhatsApp 链接预览无法正常工作或未显示
WhatsApp 限制十分严格:head 必须位于 HTML 的前 300 KB 内,且图片大小必须在 600 KB 以下。只要漏掉其中一项,您就只能看到小图预览,甚至完全没有预览。