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

AGa*_*yer 46 twitter

从字面上看,我正在寻找这样的东西:

https://developers.facebook.com/tools/debug/

但对于Twitter卡.

我在页面上写错了,我需要尽快刷新它们.但谷歌之后我才发现这篇文章:

https://dev.twitter.com/cards/troubleshooting

似乎Twitter只提供每周更新.是否有任何手动方式来清除错误的缓存页面?

谢谢

小智 82

我只是设法强迫它更新我的:

https://cards-dev.twitter.com/validator

在验证时,它会更新其缓存.

  • 这似乎不再起作用了.我最近从"摘要"卡切换到"summary_large_image"但验证器仍然报告我正在使用前者.对于较旧的博文,我也会收到虚假的白名单警告. (15认同)
  • 验证两次后,它对我有用.第一次没有做任何事,但第二次破坏了缓存. (8认同)
  • 它没有破坏我的缓存。 (2认同)
  • 这是一个误导性的答案 - 因为验证器不会破坏缓存 (2认同)

Pat*_*cio 15

按照Twitter卡的故障排除指南中的步骤实际上强制缓存在我的情况下清除.

在测试和/或迭代卡时,有时在时间轴上测试更新是有帮助的.可以使用以下技术通过页面卡的最新更改来刷新缓存.

  1. 将卡元数据添加到页面
  2. 推文到该页面的URL
  3. 刷新浏览器以查看时间线上的卡内容
  4. 更改页面上的卡元数据
  5. 使用相同的URL并通过bit.ly运行它
  6. 发布新的bit.ly URL
  7. 刷新浏览器以查看更新

此外,您可以创建多个bit.ly URL以允许重复测试.

我生成了一个bit.ly链接到页面,然后发推文,然后快速删除该推文.它立即为其他推文清除了缓存.


Vic*_*yew 14

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

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


Rou*_*ica 9

我遇到了同样的问题.

我需要更新缓存summary_large_image

Twitter卡验证器(https://cards-dev.twitter.com/validator)

对于想要更新以前缓存的图像没有兴趣.

我通过确保Twitter每次抓取页面来修复它,图像URI更新为Twitter之前从未见过或缓存过的东西.

这就像uniqid()在PHP中部署函数一样简单,并将其用作query图像URI的末尾.

例如

<?php

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

?>
Run Code Online (Sandbox Code Playgroud)

由于每次Twitter获取它时图像URI都不同,这会强制缓存更新.

  • 不起作用。即使更改图像文件名本身也不够。 (2认同)

小智 6

有一种非常简单的方法可以强制 Twitter Card 机器人的缓存失效。

如果您使用https://example.com这样的 URL 撰写推文,则只需在 URL 后面附加 /#,如下所示:https: //example.com/#,它将立即获取更新的元数据。