使用backbone.js pushstate进行seo/书签时重用服务器上的主干视图/路由

使用backbone.js pushstate进行seo/书签时重用服务器上的主干视图/路由,backbone.js,seo,pushstate,singlepage,Backbone.js,Seo,Pushstate,Singlepage,我正在对一个单页应用程序的主干网做一些尽职调查,想知道是否有可能在服务器端重复使用来自客户端的相同视图/路由,以便当google访问pushstate URL或直接访问它时,服务器可以生成与客户端主干网生成的完全相同的HTML 必须维护两组独立的视图/路由,一组在客户端,一组在服务器上,这将是一件痛苦的事情。我在github上看过backnode项目,但是这似乎有点偏离了重点,最终不得不编写两次相同的主干路由器 只是想知道当在主干网中使用pushstate URL并需要从服务器提供相同的视图时,

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

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


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

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

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

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


为了完整起见,您应该知道google是如何抓取AJAX的:

这个项目正是您想要做的。你可能会感兴趣去看看。

我刚找到。我想这可能正是我想要的,因为他在服务器端有主干网,所以所有视图都呈现在服务器端,并向客户端输出,从那里客户端接管,这意味着seo问题得到了解决。是的,现在有这么多nodejs框架。我在博客上写了这个(见我的个人资料),但仍然不确定,所以我一直在玩express+backbone.js+persistence。