文章分享到微信后卡片图被裁成 1:1,人物只露出半张脸,后台 og:image 明明是 1200×630,同一张图在 Facebook 预览里却完整显示。碰到这种情况,我一般先确认改动有没有真的生效。
原因不复杂,微信取图有自己的裁切规则,宽图会按中间正方形区域砍掉两侧。页面只给了 og:image,没有同时声明宽高,抓取端拿不到真实比例就按默认方图处理。主体靠在画面边缘,裁完只剩背景。
「分享图尺寸比例」这个问题文档写得含糊,实际行为以当前版本为准,别照旧版本的结论套。报错里带路径的,先去看那个路径在不在、权限对不对。
<meta property='og:image' content='https://www.example.com/share/cover-1200x630.jpg'> <meta property='og:image:width' content='1200'> <meta property='og:image:height' content='630'>
同一份配置存在多处的,先确认改的是被加载的那一份。新版本先放一台机器上跑一天再全量,问题一般在这段时间暴露。
具体做法是,按 1200×630 单独出一版分享图 主体放在中间 800×630 的安全区;补 og:image:width 与 og:image:height 声明真实比例;在微信里重新分享一次 不要等自然缓存过期。
最后用这个标准收尾,微信里重新分享一次,卡片图完整显示 1200×630 的构图,人物头部没有被切掉。
