我阅读了很多有关客户端 JavaScript 应用程序和搜索引擎机器人爬行方法的资料。 我发现了两种通用方法:
工作流程 1:
先决条件: 整个 Web 应用程序可以优雅地降级,并且无需 JavaScript 即可使用。因此对于搜索引擎机器人来说是可见的。
- 用户来自对特定主题的谷歌搜索
- 主题以纯 html 格式尽快加载
- JS App Framework 在后台加载
- 一旦准备就绪,JS App Framework 就会接管所有操作和路由等。
工作流程 2:
先决条件: 服务器后端是根据 Google 的 ajax 爬虫指南(https://developers.google.com/webmasters/ajax-crawling)设计的,并返回到 escaped_fragment url(例如 www.example.com/ajax.html?_escaped_fragment_=key=value)纯 html。据我了解类似 http://phantomjs.org/ 的内容可用于确保没有前端代码重复。
- Google 在其结果中显示 ajax URL
- 使用 ajax url #! 发出请求
- emberjs 应用程序已初始化,并根据 URL 加载所需的状态。
问题:
为搜索引擎机器人和前端 js 框架优点提供服务器端呈现的可抓取 emberjs 应用程序堆栈应该是什么样子? emberjs 核心开发人员推荐什么来实现这一目标? (例如,Node + Emberjs + phantomjs +- x 或 Rails + Emberjs + y 或 Playframework + Z)?
我知道可能有很多方法可以实现,但我觉得最好使用 stackoverflow 来过滤掉常见的方法。
旁注:
我已经看过一些想要创建这样一个开箱即用的完整堆栈的 JS 框架。在这里命名:
- http://derbyjs.com/ (不错的方法,但仍然是 alpha)
- http://batmanjs.org/ (不清楚生产准备如何(特别是后端))
- http://www.firebase.com/ (有些不同,但如果他们获得正确的安全性也很有趣)
- http://meteor.com/ (也是预览状态)
- http://developer.yahoo.com/cocktails/mojito/
我特别询问 emberjs,因为我喜欢他们的方法,而且我认为它背后的团队绝对有能力构建最好的框架之一。
最佳答案
我还没有看到像这样为 emberjs 构建的任何预先存在的东西。然而,早期尝试将 ember 集成为 Node 的服务器端模块。
要检查的是 derby.js ,它实际上执行工作流程#1。您可能想看看他们的代码库,如果您能胜任这项任务,请将其改编为 ember。
关于javascript - 用于搜索引擎可抓取应用程序的 EmberJS 技术栈,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12070060/