![](/img/trans.png)
[英]javascript Subclass node.js express methods to add common functionality?
[英]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
,并将其替换为页面内容。
还有两件事要考虑:
Handlebars.js是一种更类似于HTML的模板语言,支持布局和部分布局,因此您可以将其用于目标。 有几个步骤可以使其正常工作,但这并不难。 我已经在这里记录了它: http : //www.bearfruit.org/2014/01/20/node-js-showdown-handlebars-compared/
只需使用纯静态HTML文件即可。 是的,您失去了让Node.js管理通用标头的能力,但是却得到了普通的HTML。 您可以将index.html放到公用文件夹中,然后确保没有与之冲突的路由并将其用作您的主页。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.