在我的网站中,我使用此meta
<meta property="og:url" content="..." />
<meta property="og:title" content="..." />
<meta property="og:image" content="<?php echo $image_url; ?>" />
<meta property="og:description" content="..." />
我也使用addthis
小部件。
<div class="addthis_toolbox addthis_default_style" addthis:url="..." addthis:title="..." addthis:description="..." addthis:image="<?php echo $image_url; ?>">
<a href="http://www.addthis.com/bookmark.php?v=250&pubid=..." class="addthis_button_compact"><img src="/images/share.png" width="66" height="24" border="0" alt="Share" /></a>
</div>
首先$image_url
包含网站的徽标,然后我将其更改为每个帖子包含的缩略图。当我通过Facebook分享帖子时会显示徽标,但是当我看到代码的来源时,图片网址就是新的。看起来好像facebook已缓存图像。
如何防止Facebook不缓存图像。
答案 0 :(得分:1)
每次更改部分og:meta
代码时,您都必须通过Facebook Debugger运行您的网址。这将迫使Facebook重新抓取您的URL,它将获取新的图像和数据。没有办法阻止Facebook缓存图像 - 它们依赖于大量缓存以提供更好的性能。
以下是the like button's documentation的摘录,解释了:
Facebook什么时候刮我的页面?
Facebook需要抓住你的页面以了解如何展示它 该网站。
Facebook每24小时擦除一次页面以确保属性 最新。当Open Graph的管理员也会抓取该页面 页面单击Like按钮,并在URL输入时 Facebook URL调试器。 Facebook会在您的网址上观察缓存标头 - 它将按优先顺序查看“Expires”和“Cache-Control”。 但是,即使你指定了更长的时间,Facebook也会刮掉你的 每24小时一次。
刮刀的用户代理是:
"facebookexternalhit/1.1 (+http://www.facebook.com/externalhit_uatext.php)"