繁体   English   中英

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

[英]Displaying common HTML in Express and Node JS

我想知道如何在Express应用程序中显示常见的html标头信息。 我试图在所有页面上的Web应用程序上显示一个通用菜单或标题,但无法弄清楚如何在不复制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.

如果您使用的是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放到公用文件夹中,然后确保没有与之冲突的路由并将其用作您的主页。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM