如何强制清除Twitter Card机器人的缓存?

66
9个回答

98

34
似乎这不再起作用了。最近,我从“摘要”卡片切换到“摘要大图”卡片,但验证器仍然报告我正在使用前者。同时,我也收到有关旧博客文章的虚假白名单警告。 - Bower
2
它对我没有清除缓存。 - ericso
1
对我有用,谢谢! - Nello
3
这是一个误导性的回答-因为验证器不会清除缓存。 - Patrik Beck
11
验证两次后,它对我起了作用。第一次没有做任何事情,但第二次清除了缓存。 - kichik
显示剩余2条评论

27

实际上有比 Twitter 提出的方法更简单的解决方案:

当 Twitter 验证器遇到此不同的 URL 时,它会清除缓存并获取新版本。


可以用,谢谢!同时看起来有一些客户端缓存:在写新推文时需要刷新浏览器页面以获取新的元数据。 - Adamovskiy

19

按照 Twitter Card故障排除指南 的步骤,我成功地清除了缓存。

在测试和迭代Cards时,有时在时间线上测试更新是有帮助的。您可以使用以下技术刷新页面Card的最新更改,以便查看更改后的效果:

  1. 在页面中添加Card元数据
  2. 将URL推文到该页面
  3. 刷新浏览器,以在时间轴上查看Card内容
  4. 更改页面上的Card元数据
  5. 将相同的URL通过bit.ly运行
  6. 将新的bit.ly URL发送为推文
  7. 刷新浏览器以查看更新

此外,您可以创建多个bit.ly URL以进行重复测试。

我生成了一个指向页面的bit.ly链接,然后发布了一条推文,并迅速删除了它,这样就立即清除了另一条推文的缓存。


如果只是缓存导致你的robots.txt禁止了所有内容,我所需要做的就是1)更改robots.txt 2)在推特上发布带有Twitter元数据的链接3)刷新推特并可能访问单个推文网址。现在https://cards-dev.twitter.com/validator可以正确地查看所有内容。我不需要使用bit.ly做任何事情。 - squarecandy
尝试了一下...验证器显示OK,15分钟后仍然是旧的预览:https://twitter.com/Astralship1/status/895342579801313282 - Mars Robertson

9
我遇到了同样的问题。我需要更新缓存的summary_large_image,但是Twitter Card Validator (https://cards-dev.twitter.com/validator)并不想更新之前缓存的图像。
我解决了这个问题,确保每次Twitter获取页面时,图像URI都会更新为Twitter以前从未看过或缓存过的内容。这很简单,只需在PHP中使用uniqid()函数,并将其作为图像URI末尾的query
例如:
<?php

echo '
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:image" content="http://example.com/my-twitter-image.png?'.uniqid().'">
';

?>

由于每次Twitter获取图片时其URI都不同,这迫使缓存进行更新。


2
无法工作。即使更改图像文件名本身也不足够。 - arnoldbird

5
有一种非常简单的方法可以强制使Twitter Card机器人缓存无效。
如果您在撰写推文时使用像https://example.com这样的URL,您只需要在URL后面添加一个/#,就像这样:https://example.com/#它将立即获取更新的元数据。

1
现在 https://example.com 显示一张图片,而 https://example.com/# 则显示另一张。 - gerbz
这对我来说没有任何改变。 - 2540625

1

唯一帮助我清除缓存的方法是在图像URL末尾添加?v1

<meta property="twitter:image" content="https://website.com/img/twitter.jpeg?v1" />

这对我没有任何作用。 - 2540625

0

我已在 Jekyll:Twitter卡片图像缓存中详细讨论了这个问题。我使用的方法是:

  • 我正在构建和发布一个使用Jekyll构建的博客站点
  • 更改帖子的名称,从而稍微修改URL。

0

访问http://debug.iframely.com

复制并粘贴您的URL,然后点击右侧按钮。 例如: 之前是推文URL: https://bdprescription.com/entertainment/details/article/21/Full-Stack-PHP-Laravel-Vuejs-and-Angular-Developer/

接下来更新URL如下 https://bdprescription.com/entertainment/details/article/21/Full-Stack-PHP-Laravel-Vuejs-and-Angular-Developer?(添加唯一数字)

在URL的最后一个位置添加任何唯一数字或字符串,该数字或字符串以前未给出。 "?(添加唯一数字)" 然后发布新的URL


当我对YouTube播放列表的URL执行此操作时,我会收到以下错误信息:错误请求:请求页面错误:400。 - 2540625

0

我还没有验证这种方法,但遇到了这个错误两次,这些步骤似乎强制更新了“摘要卡”:

  1. 只发送推文链接(从推文合成器中删除不正确的摘要卡)
  2. 删除仅显示链接的推文
  3. 刷新 Twitter
  4. 撰写新的推文,粘贴你的链接 - 应该显示更新/正确的卡片图像、标题和描述。

它对我不起作用。 - 2540625

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接