我已经构建了一个网站,其中内容正在动态传输,nodejs
和expressjs
带jade
模板引擎,后端提供REST API和{{1}使用前端的backbone.js
模板使用require.js
进行管理。
内容类似于问题和解答或关于产品的评论帖子。目前,我将所有这些内容发送为underscore
,并且JSON
的前端接收view
具有必要的javascript和正确的下划线模板,以在页面上呈现最终的html。
将这些内容视为Feed时会很好,这些内容会在滚动时动态加载。
但我希望每个帖子都有一个单独的页面,例如问题和相关答案的单独页面以及单独的评论页面。我希望这些页面能够被搜索引擎有效地编入索引,所以我希望将它们作为最终生成的backbone.js
传输,而不是在一系列ajax调用之后填充内容的require.js主条目。
解决此问题的一种方法是使用express.js视图在服务器端构建html,然后在其中注入所有必需的javascript并发送它。但我不想重复我的逻辑。
我有任何方法可以重新使用backbone.js中编写的代码逻辑,用于提供变量和注入js的模板渲染,所有这些都在服务器端,然后简单地将生成的最终html发送到客户端,因此,如果他们看到页面的源代码,他们就可以看到完整的内容。
由于
答案 0 :(得分:2)
如果要在服务器端进行渲染,一种方法是将视图绑定到元素:
var View = Backbone.View.extend({
el: "#yourSuperId"
});
new View();
使用el
属性,您可以自动将视图附加到现有元素。你不需要渲染它。