显然Facebook Share不会选择页面加载后更改的标题/描述元标记(通过JavaScript)。它基本上使用加载时可用的元标记。
有人知道如何解决这个问题吗?
答案 0 :(得分:11)
这是Facebook的一句话。当有人共享该页面时,它们会刮取页面的元标记,并且每24小时一次(而不是按照您的建议进行页面加载)。如果您更改元标记,则需要使用URL Linter让FB再次“lint”您的网页。
Facebook什么时候刮我的页面?
Facebook需要抓取您的网页以了解如何在网站上展示它。 Facebook每24小时擦除一次页面以确保属性是最新的。当Open Graph页面的管理员单击Like按钮并将URL输入Facebook URL Linter时,页面也会被删除。 Facebook会在您的网址上观察缓存标头 - 它会按优先顺序查看“过期”和“缓存控制”。但是,即使您指定的时间较长,Facebook也会每24小时抓一次页面。
答案 1 :(得分:1)
因为Facebook服务器点击您提交的网址并查找元标记。它始终默认为原始标签。
答案 2 :(得分:0)
它没有Facebook的业务。他们只为它提供api。并且api将meta标签作为参数。因此,您将元标记设置为Facebook共享。
答案 3 :(得分:0)
我认为Facebook服务器在抓取你的页面时不会执行javascript。
您可以使用服务器端逻辑来检测Facebook用户代理并相应地修改输出的HTML。
根据此页面底部(http://developers.facebook.com/docs/opengraph/),用户代理当前是:
facebookexternalhit/1.0