如何将html呈现到页面中,而不是将整个视图呈现为Node.js + express应用程序?

时间:2014-01-02 23:38:09

标签: javascript html node.js express

意图
我需要将hmtl的一部分渲染到页面中。

问题
正在呈现的页面没有样式或布局。


我有一个页面,我需要用简单的HTML而不是玉。但仍将在其他地方使用玉。

我跟着一个similar question,它可以直接转到一个html页面。但是如果没有传入样式和布局。

我的上一页是cases.jade,就像这样开始

extends layout

block content
  .row
    .twelve.columns
      h1 title

现在,我的新页面为cases.html,并按此开始

<div class="row">
  <div class="twelve columns">
    <h1>Before &amp; After Case Gallery</h1>

并被路由到这样

app.get('/cases', function (req, res)
{
  res.render('cases.html');
});

并将其置于上方

app.set('views', __dirname + '/views');
app.engine('html', require('ejs').renderFile);

1 个答案:

答案 0 :(得分:1)

在您的jade文件中,您正在扩展布局页面,因此您可以包含所有布局信息。但是在HTML版本中,您不会导入任何布局信息。

我看到你正在使用ejs。查看布局,了解要放入模板的内容:

<% include head %>
<h1>Title</h1>
<p>My page</p>
<% include foot %>

在这里,您需要执行<%include layout %>之类的内容,并将您的布局页面内容放在layout.html中。 include行基本上会将文件的内容复制粘贴到该位置。