【问题标题】:node express template engine that supports layouts and partials [closed]支持布局和部分的节点表达模板引擎[关闭]
【发布时间】:2012-09-10 08:45:27
【问题描述】:

有没有一种很好的模板制作方法(允许我编写 html——而不是jade),它将支持布局和部分?

我只能使用 ejs 和 express-partials npm 插件来获得这种行为。但是我觉得 ejs 网站已经过时并且没有得到很好的支持。

我正在寻找好的例子。

我想创建一个包含页眉和页脚的主布局,并包括一个单独的导航模板。

Knockoutjs 看起来得到很好的支持,但我找不到很多将它与 express 一起使用的示例。

更新:我在这里从 LinkedIn 对 js 模板的评估中找到了一篇相当不错的文章:http://engineering.linkedin.com/frontend/client-side-templating-throwdown-mustache-handlebars-dustjs-and-more

【问题讨论】:

  • 我使用 ejs 没有任何问题。在我的布局中,我为 header-nav、side-nav、footer 设置了单独的部分......效果很好!
  • 谢谢。这就是我现在正在使用的 - 只是想在我深入编码之前看看是否有任何更新。

标签: node.js express template-engine


【解决方案1】:

试试 twigjs。很符合你的描述。

https://github.com/fadrizul/twigjs

但 ejs 也不会在不受支持的情况下寻找我。我认为这甚至是解决方案。

【讨论】:

  • 似乎还是有点新,twigjs.org 进入了一个停放的页面。
  • Twigjsejsjade 是 nodejs 最常用的三个模板引擎。所以,我认为你最好选择其中之一。
  • Twigjs 看起来比 ejs 维护得更少 - 一年多没有 repo 更新,twigjs.org 网站是 404
【解决方案2】:

您可以使用 EJS 中的“包含”功能轻松模仿这一点。它不像 Express 2.x 中的布局那样优雅,但它适用于您只需要页眉和页脚以及不需要使用 Jade 的简单场景。

基本上,您可以创建两个“布局”页面(layoutTop.ejs 和 layoutBottom.ejs)并手动将它们包含在每个页面上。

mypage.ejs

include layoutTop
html for my page.ejs goes here
include layoutBottom

(无耻插件)你可以在这里看到更详细的解释: http://hectorcorrea.com/Blog/Using-layouts-with-EJS-in-Express-3.x

【讨论】:

  • 你能像在 express2.x 中使用部分数据一样将数据传递给你的包含吗?
  • 据我所知,页面上可用的相同数据似乎在包含中可用。
  • 你错过了
【解决方案3】:

试试handlebars

您可以将它与hotplates 一起使用,以自动解析您的模板。

它还支持重用您的部分客户端。

【讨论】:

    【解决方案4】:

    我已经决定将 visionmedia 的 ejs 与 ejs-locals 一起用于布局、包含和块。

    https://github.com/RandomEtc/ejs-locals https://github.com/visionmedia/ejs

    【讨论】:

      猜你喜欢
      • 2023-03-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多