我有一个使用BackboneJS创建的网站,我正在尝试实施Facebook OG,以便当用户从Facebook状态粘贴我的网站的URL时,它将显示标题,图像等。
我的问题是FB scraper总是被重定向到索引页面,因为Apache将所有流量重定向到索引页面,因此BB路由器可以正常工作。它只能看到索引页面的og标题,og图像等,而不是我的其他页面。
Facebook刮刀/抓取工具似乎没有通过BB路由器。它只是呈现静态index.html页面。有没有人为这个解决方法/解决方案?
答案 0 :(得分:1)
我建议您在网站HTML本身(而不是Backbone)中配置Facebook Open Graph标签。 FB具有用于生成小预览的特殊标记。 Here是文档。
Facebook刮刀/抓取工具不会通过骨干路线,可能是因为它没有运行javascript。
由于它没有运行JS,你可以设置一个脚本来在页面访问index.html时读取请求uri,然后重定向到带有相应OG标记的页面。
答案 1 :(得分:1)
您可以使用Facebook Lint工具调试OG对象,它位于您的一个域链接上:
请注意,虽然您的OG对象网址实际上是http://embedible.com/
,但您显示的{og:url显示http://embedible.com/video/amQ1Njg4QGdtYWlsLmNvbTI5OA==有问题您可以在lint调试器的重定向路径部分看到它,报废的实际网址是http://embedible.com/
在我的网站上,我们使用基于网址的不同数据呈现相同的html模板。所以我有2个模板引擎,一个用于客户端的真实视图,另一个用于填充元标记的服务器
底线:您必须替换服务器上的元标记。
答案 2 :(得分:0)
CamelBlues,我不认为这是我正在寻找的解决方案。首先,我已在我的网站上使用OG标签。其次,我不认为crawler需要知道如何读取JS,而JS需要根据URI呈现的页面......这就是Backbone.js路由器的工作原理。和,
“由于它没有运行JS,你可以设置一个脚本来在页面访问index.html时读取请求uri,然后重定向到带有相应OG标记的页面。”
这就是BB路由器正在做的事情,我的页面有适当的OG标签。 :(