Twitter卡的类型为[summary_large_image]。
我的网页
<head>
中包含的元信息是:<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:site" content="@myTwitterAccount" />
<meta name="twitter:creator" content="@myTwitterAccount" />
<meta name="twitter:image:src" content="http://example.com/social/twitter/large_image.png" />
<meta name="twitter:image:width" content= "280" />
<meta name="twitter:image:height" content= "480" />
<meta property="og:image" content="http://example.com/social/twitter/large_image.png" />
<meta property="og:image:width" content= "280" />
<meta property="og:image:height" content= "480" />
<meta property="og:url" content="http://example.com/myfolder/mysubfolder/" />
<meta property="og:title" content="My Page Title" />
<meta property="og:description" content="My Page Description" />
我认识到上面的标记中有冗余-在当前设置之前,我尝试添加和删除任意数量的
og:
和twitter:
meta
元素以产生(减少冗余)的替代组合... Twitter已对我的[summary_large_image] Twitter卡的网域进行了审核并将其列入白名单。
Twitter Card Validator返回以下日志:
INFO: Page fetched successfully
INFO: 19 metatags were found
INFO: twitter:card = summary_large_image tag found
INFO: Card loaded successfully
卡上的所有元素在验证程序和我自己的Twitter流中都可以正常显示,除了...
... the图像不存在。
我设法使图像一次在笔记本电脑上显示(但是再也没有,而且我不确定那一次我做了什么不同)。
完全没有问题要在本机iOS Twitter应用程序上显示的图像-该图像始终显示在应用程序上。
有指针吗?谢谢。
#1 楼
@MattGreer的2020更新:现在图像需要为1200x630,不再是2:1。
一旦我使用了该尺寸,图像就会开始显示。请参阅@johanv的
答案。
2015年的原始答案:
在图像显示之前,有两个主要注意事项需要注意。 [summary_large_image] twitter卡:
图像尺寸必须(至少)符合最小宽度(280px)和最小高度(150px)。任何较窄或更短的图像都将不会显示。
页面无法(似乎)引用其[summary_large_image] twitter卡的图像,另一页面的[summary_large_image] twitter卡具有该图像已经被引用。如果尝试这样做,将不会显示图像。 (此限制不适用于本机iOS Twitter应用。)
我规避了限制2的方法是使用PHP函数
uniqid()
将随机字母数字字符串附加到
http://example.com/social/twitter/large_image.png
echo '<meta property="og:image" content="http://example.com/social/twitter/large_image.png?'.uniqid().'" />';
#2 楼
在大多数情况下,这可能只是Twitter的卡片缓存。更新非常缓慢,最多需要一周。要强制刷新,请参见:https://stackoverflow.com/a/58842765/2873507
转到https://cards-dev.twitter.com/validator
键入要更新的URL,但要进行更改。例如,添加
?utm_source=Whatever
,然后使用您的Twitter卡上的任何推文重新加载页面
当Twitter验证程序遇到此不同的URL时,它将清除其
缓存并提取新版本。
#3 楼
以我为例,我的图像路径有一个额外的正斜线,在浏览器中可以正常工作,但并未被Twitter接受。这是一个很难发现的字符错误。例如检查以下内容:
https://example.com//myphoto.jpg
并将其更改为:
https://example.com/myphoto.jpg
#4 楼
万一这对其他人有用,我的问题是使用相对路径而不是完整URL。例如,/images/example.png
我必须将其更改为https://example.com/images/example.png
。评论
感谢您添加@MattGaunt! :-D
–罗宁
20年4月28日在9:33
#5 楼
我遇到了同样的问题,并且尝试了很多事情。我检查了robots.txt,检查了meta标签,检查了Twitter文档上的图像规格(纵横比为2:1,最小尺寸为300x157或最大为4096x4096像素。图像尺寸必须小于5MB),我四处乱逛,四处搜寻,一切都没有用。 (卡被缓存的事实也无济于事。)最后,我查看了我的Twitter流,并单击到卡中确实有图片的页面,查看了meta标签。在该页面上,并尝试在我的帖子中使用该页面的图像。猜猜是什么:这行得通。 br
因此该特定站点的图片尺寸为1200x630。我所做的就是更改了图片,因此它也是1200x630像素。我在twitter:image元标记中使用了该标记,现在它可以正常使用。
所以文档可能已过时了?无论如何,如果您遇到此问题,可以尝试将图片的尺寸更改为1200x630。
#6 楼
我为此抓挠了头,因为我做对了所有事情。原来,我的页面是从上面没有元属性标签的时候开始缓存的。当我使用其验证器时,卡片图像立即显示在Facebook和Twitter上。
Twitter:https:// cards-dev.twitter.com/validator
Facebook:https://developers.facebook.com/tools/debug/
#7 楼
我遇到了类似的问题。我的问题是该URL从API返回为
//www.example.com/foo.jpg
。在开头添加https:
对我来说就是固定的。
评论
在我的测试中,除非该图像的确切长宽比为2:1(根据当前文档),否则仍不会显示该图像:“此卡的图像支持长宽比为2:1,最小尺寸为300x157或最大为4096x4096像素。”
–詹姆斯
17年4月3日在8:46
关于唯一性,是通过Internet还是仅在您自己的网站中?随着时间的流逝,我有很多图像消失,我想知道为什么。他们仍然在那里,我什至可以使用Card Validator进行测试并查看图像,但是当我转到自己的Twitter提要时,它就不存在了。
– Alexis Wilke
18年5月20日在22:24
@jamesk我确认这不是问题。我正在使用其他宽高比的卡。问题很可能是Twitter的卡片缓存,更新非常缓慢。要强制刷新它,请参见此处:stackoverflow.com/a/58842765/2873507
– Vic Seedoubleyew
19年11月13日在17:46
看来现在图像需要为1200x630,不再是2:1。使用该尺寸后,我的图像开始显示。见@johanv的答案
–马特·格里尔(Matt Greer)
20/12/08在18:37
谢谢@MattGreer。我们应该期望这样的实现细节会经常更新,所以我在上面的答案的顶部(上面紧紧地强调了您的评论),以便人们抓住它。
–罗宁
20 Dec 9'在9:53