【发布时间】:2014-05-03 23:45:11
【问题描述】:
我正在为我的单页应用程序使用敲除(应用程序只有一个入口点,并且应用程序的视图正在通过调用 ajax 和修改页面来改变)。
我是我的应用程序,我希望人们利用通过 fb、twitter、g+ 共享页面的优势。在标准应用程序中,我会这样做:
<meta property="og:title" content="page title" />
.. other things like url, image ..
在 fb 上分享该页面的人会得到一个不错的页面标题。但是在 SPA 中,我的标题是在开始时创建的,但我正在使用 JS 对其进行修改:$('meta[name="og:title"]').attr('content', 'new title'); 所有社交网络都采用旧内容(这是意料之中的,它是用theseresources 编写的)。
我的应用程序使用 JS 路由,因此每个不同的页面都有自己的特定地址,如下所示:http://domain.com/#!route/123。读了两个类似的问题,我得到了相互矛盾的答案:
- 这是not possible
- 这可以通过实现specific server-side logic 来实现,它基于跟踪 FB 用户代理。
当然,第二个只适用于 FB。
我的问题是:2014 年引擎解析开放图形信息的方式是否有任何改进,是否可以在单页应用程序中正确使用它。特别是我有兴趣在 FB、twitter、G+ 上很好地展示分享内容。
【问题讨论】:
-
我认为此信息是在页面加载时捕获的,并且最低要求是唯一的路由(即没有散列)。这应该可以通过在 FB 上“分享”链接并查看它为分享拉取的 OG 内容在相当快的时间框架内进行测试。如果您可以构建您的应用程序,使服务器在从直接链接查看该页面时使用正确的 OG 内容,那么您应该没问题。
标签: knockout.js facebook-opengraph single-page-application