javascript - 用于搜索引擎可抓取应用程序的 EmberJS 技术栈

标签 javascript ruby-on-rails node.js playframework ember.js

我阅读了很多有关客户端 JavaScript 应用程序和搜索引擎机器人爬行方法的资料。 我发现了两种通用方法:

工作流程 1:

先决条件: 整个 Web 应用程序可以优雅地降级,并且无需 JavaScript 即可使用。因此对于搜索引擎机器人来说是可见的。

  1. 用户来自对特定主题的谷歌搜索
  2. 主题以纯 html 格式尽快加载
  3. JS App Framework 在后台加载
  4. 一旦准备就绪,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/ 的内容可用于确保没有前端代码重复。

  1. Google 在其结果中显示 ajax URL
  2. 使用 ajax url #! 发出请求
  3. emberjs 应用程序已初始化,并根据 URL 加载所需的状态。

问题:

为搜索引擎机器人和前端 js 框架优点提供服务器端呈现的可抓取 emberjs 应用程序堆栈应该是什么样子? emberjs 核心开发人员推荐什么来实现这一目标? (例如,Node + Emberjs + phantomjs +- x 或 Rails + Emberjs + y 或 Playframework + Z)?

我知道可能有很多方法可以实现,但我觉得最好使用 stackoverflow 来过滤掉常见的方法。

旁注:

我已经看过一些想要创建这样一个开箱即用的完整堆栈的 JS 框架。在这里命名:

我特别询问 emberjs,因为我喜欢他们的方法,而且我认为它背后的团队绝对有能力构建最好的框架之一。

最佳答案

我还没有看到像这样为 emberjs 构建的任何预先存在的东西。然而,早期尝试将 ember 集成为 Node 的服务器端模块。

要检查的是 derby.js ,它实际上执行工作流程#1。您可能想看看他们的代码库,如果您能胜任这项任务,请将其改编为 ember。

关于javascript - 用于搜索引擎可抓取应用程序的 EmberJS 技术栈,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12070060/

相关文章:

node.js - 如何将包含的部分插入代码插入父 block 中?

javascript - 如何从编译器函数指令访问范围?

mysql - 创建餐厅菜单时我应该使用 has_many through 还是 habtm 关联?

sql - 结合使用DISTINCT和ActiveRecord

javascript - NodeJS 是否重用已经加载的模块并共享它的值?

node.js - 304 not modified in console status 是什么意思?

javascript - 引用错误 JS 未为 Datamap 定义

javascript - MySQL Node JS 异步问题

javascript - React - 测试 useContext() 调度值

ruby-on-rails - 邪恶的 PDF 标题没有显示