5

这个问题可能与确切的软件堆栈、框架或语言无关。

对于我目前的项目,我们正在使用AngularJS构建具有恒定入口页面来加载真实数据和渲染的前端,这对于CDN来说很容易,并且有利于从浏览器端快速加载。但是对于某些社交功能,这样的架构师可能会导致一些问题。例如,当您将感兴趣的链接粘贴到 Facebook 门户进行分享时,Facebook 将抓取您的页面并显示预览。如果着陆页为空,则无法进行此类预览。

(我听说 Google+ 最近支持在服务器端渲染 javascript 逻辑,然后再发回预览,但显然这不是对其他类似服务的常见支持。Google.com 也支持索引基于 js 的单页应用程序。)

有没有更好的解决方案来优雅地解决这个问题,而不是回退到包含真实数据的动态页面?我在理解这个问题时错过了什么吗?

========

...我什至在想,对于标识为 FB 请求(如用户代理)的请求,将其重定向到一个特殊的网关,该网关像 PhantomJS 一样包装某物,获取页面,在服务器端呈现它,然后发回 DOM树快照作为 FB 生成预览的内容。但我也怀疑这是一个好的方向。: (

4

1 回答 1

0

我们处于同样的境地。简单的解决方案是在您的服务器将提供给 Facebook 抓取工具的页面中使用 Open Graph 元标记。基本上,您需要在服务器端执行您的 Web 应用程序在客户端执行的操作。工作量很大程度上取决于您的托管技术(MVC 使其变得超级简单)、您的 URI 格式和您使用的 API。

你会在这里找到一些解释: https ://developers.facebook.com/docs/plugins/share-button/

开图介绍: http: //ogp.me/

于 2013-11-15T09:37:23.570 回答