在Express和Node JS中显示常见的HTML

时间:2014-06-09 17:18:12

标签: javascript html node.js web-applications express

我想知道如何在Express应用程序中显示常见的html标头信息。我试图在我的网络应用程序上显示所有页面上的公共菜单或标题,但无法弄清楚如何执行此操作而无需复制并将html粘贴到我服务器上的每个html文件中。我相信这可以通过路线完成。我的应用程序结构如下:

/ web root
   - server.js // main web server
   /public
     - css, 3rd party js files, images
   /routes
     - index.js includes renders to seperate pages
   /views
     - jade and html files.

1 个答案:

答案 0 :(得分:1)

如果您正在使用Jade,那么您实际上不会通过路线执行此操作,而是使用Layouts。如果您使用express-cli工具生成项目,那么您将注意到views / homepage.jade文件使用layout.jade文件来执行您期望的操作。

如果你想要一个更复杂的例子,我在这里做了一个基于Bootstrap的演示项目:https://github.com/newz2000/template-test-jade

在任何一种情况下,我们的想法是你有一个使用如下语法的文件:

extends layout

block content
    your page's content here

然后你的layout.jade文件会有这样一行:

block content

当您res.render()第一个文件时,它将首先呈现布局并从layout.jade文件中取出block content并将其替换为您页面的内容。

另外两件事要考虑:

  1. Handlebars.js是一种更像HTML的模板语言,支持布局和部分,因此您可以将其用于您的目标。有几个步骤可以让它工作,但并不难。我在此处记录了它:http://www.bearfruit.org/2014/01/20/node-js-showdown-handlebars-compared/

  2. 只需使用纯静态HTML文件即可。是的,你失去了让Node.js管理公共标题的能力,但是你得到了普通的标题。 HTML。您可以将index.html放入公用文件夹,然后确保没有与之冲突的路由,它将作为您的主页。