在使用Backbone.js pushstate进行seo/bookmarking时,重用服务器上的主干视图/路由

cjr*_*uck 9 seo singlepage backbone.js pushstate

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

必须维护两组独立的视图/路由,一个在客户端上,一个在服务器上,这将是一件痛苦的事.我已经在github上看到了backnode项目,但是这似乎忽略了一点,你最终必须写两次相同的骨干路由器.

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

Ada*_*ent 5

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

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代理,并实际渲染旧/ bot客户端的工作.

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

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

  • 我刚刚找到http://www.idiotz.nl/2011/08/28/backbone-everywhere/.我认为这可能正是我正在寻找的,因为他已经在服务器端工作,因此所有视图都呈现在服务器端并吐出到客户端,从那里客户端接管,意味着seo问题得到解决. (3认同)