facebook - 如何使用 AngularJS、Mustache、Handlebars 等客户端模板引擎制作 Facebook Open Graph 友好元标记

标签 facebook angularjs facebook-opengraph handlebars.js mustache

根据我的测试,Facebook 的爬虫不会像浏览器那样呈现客户端模板。

我想不惜一切代价避免使用网络服务器并为 Open Graph 对象构建 HTML 文件。我想通过 URL 即时生成元标记,但 Facebook 似乎无法做到这一点。

Facebook 的人可以确认一下吗?我在#mobiledevcon 上问过 Open Graph 的负责人,她说 Facebook 可以渲染像 {{value}}

这样的东西

我的元标记如下,它们在每个浏览器中都能正常显示。但是 Facebook Open Graph Debugger 只能看到原始文本,看不到插入的内容。

<meta property="{{meta.property}}" content="{{meta.content}}">

最佳答案

当你仔细想想它应该很清楚,为什么这行不通。

Facebook 爬虫下载服务器提供的 HTML。 Facebook 爬虫不会执行任何 JavaScript,就像所有爬虫都不会执行 JavaScript 一样。这是由于安全限制和速度原因(他们没有时间在他们的服务器上执行 JavaScript)。

没有办法解决这个问题。如果您希望爬虫将您的页面编入索引,您需要直接向他们提供您希望他们阅读的内容。

提示:您可以使用类似 phantom.js 的内容在服务器端呈现您的页面并将其提供给爬虫。

关于facebook - 如何使用 AngularJS、Mustache、Handlebars 等客户端模板引擎制作 Facebook Open Graph 友好元标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16481731/

相关文章:

javascript - 单击模式外部时显示确认弹出窗口 - bootstrap

javascript - 向 Angular 选项列表添加其他命令

facebook - 如何国际化元标签以供 Facebook 正确解析?

ios - 如何在swift 3中实现iOS应用程序链接Facebook功能?

android - Facebook 在 android facebook SDK 4.8.0 中使用读取和发布权限登录

ruby-on-rails - 适用于 Ruby on Rails 的 Facebook 营销 API(广告)

javascript - FB api - 在其他人的公共(public)页面上发布图像

html - 防止浏览器窗口调整大小

facebook - publish_actions 扩展了发布到 Facebook 时间轴的权限

html - Facebook 点赞按钮框在窗口区域外打开