【问题标题】:Reusing backbone views/routes on the server when using Backbone.js pushstate for seo/bookmarking使用 Backbone.js pushstate 进行 seo/书签时重用服务器上的主干视图/路由
【发布时间】:2011-08-17 19:09:35
【问题描述】:

我正在对单页应用程序的主干进行一些尽职调查,并想知道是否可以在服务器端重用来自客户端的相同视图/路由,以便当 google 访问 pushstate URL 时,或者它是直接访问的,服务器可以生成与客户端骨干网生成的完全相同的 HTML。

必须维护两组单独的视图/路由,一组在客户端,一组在服务器上,这将是一件痛苦的事情。我在 github 上看到过 backnode 项目,但这似乎有点忽略了这一点,您最终不得不两次编写相同的骨干路由器。

只是想知道人们在骨干网中使用 pushstate url 并需要从服务器提供相同视图时通常如何处理这种情况?人们是在复制代码还是有更好的方法?

【问题讨论】:

    标签: backbone.js seo pushstate singlepage


    【解决方案1】:

    我还没有尝试过,但是这些使用 node.js 和主干的想法可能会有所帮助:

    http://andyet.net/blog/2011/feb/15/re-using-backbonejs-models-on-the-server-with-node/

    http://bennolan.com/2010/08/13/pushstate-and-nodejs.html

    基本上唯一的方法是让你的 node.js 服务器和前端客户端共享相同的路由/模型代码,这样你就不会两次编写相同的东西。如果您在服务器端使用其他东西(如 Ruby),则必须将 node.js 放在应用服务器的前面。然后为新客户端(推送状态和客户端 js)制作 node.js 代理,并为旧/机器人客户端实际渲染工作。

    另一个选项是做 jQuery Mobile 所做的,即 Hijax 方法。制作大量 HTML5 页面的想法(您必须查看其路由才能看到)。

    为了完整起见,您应该了解 google 如何抓取 AJAX:http://code.google.com/web/ajaxcrawling/docs/getting-started.html

    【讨论】:

    • 我刚刚找到idiotz.nl/2011/08/28/backbone-everywhere。我认为这可能正是我正在寻找的,因为他有骨干在服务器端工作,所以所有视图都呈现在服务器端并吐出给客户端,客户端从那里接管,这意味着 seo 问题得到了解决。
    • 是的,现在有很多 nodejs 框架。我在博客上写过这个(见我的个人资料),但仍然不确定,所以我一直在玩 express +bone.js + persistence。
    【解决方案2】:

    这个项目完全符合您的要求。你可能会感兴趣去看看。 https://github.com/developmentseed/bones

    【讨论】:

      猜你喜欢
      • 2012-07-09
      • 2012-07-02
      • 2012-10-07
      • 1970-01-01
      • 1970-01-01
      • 2012-10-24
      • 1970-01-01
      • 1970-01-01
      • 2013-01-24
      相关资源
      最近更新 更多