重新使用服务器端的主干应用程序在服务器端渲染视图

我正在开发一个backbone.js应用程序,其中我的一个视图是具有不同types子视图的复合提要。

我将不得不生成该视图的静态版本,以用于电子邮件的目的。 我正在寻找最实际的解决scheme,使我能够从现有的代码中尽可能地重用,而不会重复

我想出了两个select:

  1. 使用php生成静态视图。 这将使我不得不因为不同的语言而重复大量的逻辑。
  2. 设置一个简单的nodejs http服务器,它将重新使用大部分应用程序逻辑在服务器端创build一个视图。 这听起来不错,但我仍然不知道从长远来看,这样的解决scheme是多么实用。 对于ecample,我完全不知道是否可以在服务器端使用Jquery从现有的html文件创build布局。

他应该select哪一个呢?为什么? 或者也许还有第三个?

当我开始研究我的第一个backbone.js应用程序时,我讨论了这个确切的问题,因为像你一样,我认为复制这么多的视图代码是很浪费的。 我正在使用rails,我的目标是在服务器(haml / ruby​​)和客户端模板(haml / coffeescript)上使用相同的格式(haml),但事实certificate这是不可能的,反正不是很为宜。

无论如何,虽然在应用了几个月后,我得出的结论是,重复不是一个大问题。 如果最终的结果只有几页,这当然不值得试图避免重复。 另外,至less在我的情况下,我从服务器发送的静态页面没有结束与backbone.js呈现的模板完全相同的结构,所以它不是100%的重复。

不知道这是否有帮助,但无论如何我build议首先复制页面,看看有多less额外的工作实际上涉及。 更复杂的解决scheme,像#2与nodejs服务器,打击我过度杀伤,除非你真的会这样服务大量的网页。

关于它的价值,下面是关于SO的主题的一些讨论:

Rails客户端/服务器端使用Sammy.js单个模板(把手或小胡子)渲染

可在服务器和客户端上运行的模板语言