如何防止Facebook不缓存图像?

时间:2013-04-29 05:58:39

标签: facebook addthis

在我的网站中,我使用此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不缓存图像。

1 个答案:

答案 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)"