4

我们的网站使用 Facebook 评论框插件。我们在防火墙后面的临时站点上包含评论框,这意味着 Facebook 无法访问它并生成“URL 无法访问”错误。这个我明白。

但是,一旦页面发布,并且 Facebook 可以访问,错误仍然会显示。这可以通过单击与错误一起提供的调试链接轻松修复,但我的内容编辑器不想每次都这样做,他们有时会忘记。

一旦使用调试器,似乎可达状态被缓存并重置。谁能想到另一种解释?

我想我可以从临时站点中省略 Facebook 评论框,但不希望这样做。还有其他想法吗?

4

1 回答 1

2

Like Button的文档中,他们解释了何时抓取页面:

Facebook 什么时候抓取我的页面?

Facebook 需要抓取您的页面以了解如何在网站周围显示它。

Facebook 每 24 小时抓取一次您的页面,以确保属性是最新的。当 Open Graph 页面的管理员单击 Like 按钮以及将 URL 输入 Facebook URL Linter 时,该页面也会被抓取。Facebook 会观察您 URL 上的缓存标头 - 它会按优先顺序查看“过期”和“缓存控制”。但是,即使您指定更长的时间,Facebook 也会每 24 小时抓取一次您的页面。

爬虫的用户代理是:“facebookexternalhit/1.1 (+http://www.facebook.com/externalhit_uatext.php)”

这里有三个选项:

  1. 您可以通过发出一个简单的 http 请求来调用调试器,您可以在发布文章(或您正在发布的任何内容)时从服务器执行此操作,您不必使用调试器工具。

  2. 您可以检查用户代理字符串是否有请求,如果它是 facebook刮板允许它,以便它可以缓存页面。

  3. 您可以为生产和登台使用不同的 url,这样登台页面的缓存在生产中就无关紧要了。

于 2012-05-15T22:57:04.603 回答