【问题标题】:How can you convert "view engine" value in expressjs to render html instead of jade?如何将 expressjs 中的“视图引擎”值转换为呈现 html 而不是玉?
【发布时间】:2013-11-09 22:01:24
【问题描述】:

这是我当前的代码:

app.set('view engine', 'jade');

我想将玉文件转换为 html 并呈现 html。我尝试用 'html' 代替 'jade',但没有用。

【问题讨论】:

  • 上面的代码告诉 express 在你省略它们时使用文件扩展名.jade。见expressjs.com/api.html#app-settings
  • 你想渲染 HTML 吗?但是 express+jade 会为你生成 html。客户端总是会得到 html。
  • 不只是渲染——我想用HTML写,因为我不懂玉,我不想花时间学习它。
  • 如果你最终要使用 html 文件,你可以使用 EJS 代替 Jade。 embeddedjs.com

标签: node.js express


【解决方案1】:

您可以使用res.sendfile 提供 HTML 文件:

res.sendfile('path/to/html/file.html');

(要将任何现有的 Jade 文件转换为 HTML,您可以使用 npm install jade -g 全局安装 Jade 并使用命令行实用程序 jade 进行转换)

但这并没有“渲染”任何东西,因为渲染假定某种形式的模板引擎。如果你想使用不同的模板引擎,也许一个看起来比 Jade 更像 HTML 的引擎,你可以看看 ejsswig

此外,您可以使用express.static 中间件来代替res.sendfile,该中间件将提供任何静态文件(如纯HTML、JS、CSS):

app.use(express.static(__dirname + '/public'));

【讨论】:

  • 我读到这没有缓存,不适合生产。
  • 静态文件服务最好留给像 nginx 这样的东西,尽管 Node 可以像这样轻松地每秒处理 1000 多个请求。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-06-15
相关资源
最近更新 更多