【发布时间】:2012-12-16 10:57:42
【问题描述】:
我想使用 Express 3 渲染原始的 .html 页面,如下所示:
server.get('/', function(req, res) {
res.render('login.html');
}
这就是我配置服务器以呈现原始 HTML 页面的方式(灵感来自 this outdated question):
server
.set('view options', {layout: false})
.set('views', './../')
.engine('html', function(str, options) {
return function(locals) {
return str;
};
});
不幸的是,使用此配置页面会挂起并且永远不会正确呈现。我做错了什么?如何在没有 Jade 和 EJS 等精美渲染引擎的情况下使用 Express 3 渲染原始 HTLM?
【问题讨论】:
-
决定通过 Nodejs 提供静态 HTML 的动机是什么?从更广泛的背景来看,这似乎是一个次优的解决方案。
-
这是一个非常简单的页面。例如,使用 Jade 的开销是不值得的。
-
好的,假设在现有的高流量 Node 应用程序中有一个受到重创的静态页面,不需要共享模板。即便如此,这对我来说似乎编码太多了,编码意味着开发成本 + 测试 + 维护。我个人只是在响应中设置长缓存标头,让 Nginx/Apache 从缓存中提供内容。这样您就不需要自定义代码并且模板生成开销变得无关紧要。
-
它实际上是使用 JavaScript 在客户端填充的静态 HTML 页面。人口信息由 Node.JS 实时生成。我不会离开 Node.JS。
-
不建议您放弃 Node,我可以从您的回复中假设您没有在 Web 服务器后面运行 Node 吗?这是否意味着您需要直接访问 websocket?
标签: javascript node.js express