将Handlebars HTML分离成多个文件/部分

时间:2018-06-24 16:53:51

标签: html node.js express handlebars.js

我只想创建一个页面,但是我想将HTML代码分割成多个文件。

渲染此路线时,我希望渲染的文件从所有模板文件中获取内容并将其合并到一页。

例如,此模板应呈现以下文件:

  • 标题
  • 简介
  • 服务
  • 关于
  • 联系
  • 版本说明

我只想将代码分开,因为这样我就可以构建一个干净的结构。那可能吗?目前,我只能渲染一个文件

router.get('/', (req, res) => {
    res.render('myTemplate');
});

如果有一种默认HTML逻辑的方法,我不需要使用 Handlebars (手把),因为我的页面只有一个模板。

1 个答案:

答案 0 :(得分:1)

假设您要渲染一个文件,即您的主文件,并在其中包含页眉和页脚文件。让我们将主文件main.hbs和页眉和页脚html文件称为header.html和footer.html

您的路线代码如下所示:

    router.get('/', (req, res) => {
    res.render('main');
});

header.html

<h1> Hi I'm the Header </h1>

footer.html

<h1> Hi I'm the Footer </h1>

您可以使用jQuery将页眉和页脚模板包含在主模板中

main.hbs

<html>
<head>
<title></title>
<script src="//code.jquery.com/jquery-1.10.2.js"></script>
<script> 
$(function(){
  $("#header").load("header.html"); 
  $("#footer").load("footer.html"); 
});
</script> 
</head>
<body>
<div id="header"></div>
<!--Remaining section-->
<div id="footer"></div>
</body>
</html>

类似地,您可以通过指定其ID将Intro,Service,About,Contact,Imprint文件包含在主文件中。