Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Express 使用布局模板表达js-ejs_Express_Ejs - Fatal编程技术网

Express 使用布局模板表达js-ejs

Express 使用布局模板表达js-ejs,express,ejs,Express,Ejs,在我的express应用程序中, 我已将视图引擎更改为ejs 有人知道是否仍然可以利用视图模板吗?Express.js如果我没记错的话,就让模板引擎来决定。因此,如果ejs不支持布局,那么你就不走运了。你可以用这个模块来实现 layout.ejs <html> <body> <% include nav %> <h1><%= title %></h1> <%-

在我的express应用程序中, 我已将视图引擎更改为ejs


有人知道是否仍然可以利用视图模板吗?

Express.js如果我没记错的话,就让模板引擎来决定。因此,如果ejs不支持布局,那么你就不走运了。

你可以用这个模块来实现

layout.ejs

<html>
    <body>
        <% include nav %>
        <h1><%= title %></h1>
        <%- body %>
    </body>
</html>

事实上,在Express 3.X不支持layout.ejs之后,如果您想使用该布局,以下步骤应由您自己完成:

  • package.json
    文件中添加依赖项“express partials”:“*”
  • “依赖项”:{ “express”:“3.1.0”, “ejs”:“*”, “快速部分”:“*” }
  • 执行
    npm install
    安装最新版本的
    express partials
  • 在你的
    app.js中需要
    express partials

    var partials=require('express-partials')
  • 添加代码
    app.use(partials())app.set('view engine','ejs')下的code>
    app.js
    文件中

  • 在那之后,您可以设计
    layout.ejs
    并在
    layout.ejs
    文件中添加
    块,这就足够了,而且运行良好。

    根据express的文档,它应该支持布局,但我还没有让它正常工作。3.x删除了布局。网站上的指南是2.x。您可以使用ejs locals定义布局。@Pickels这仍然是真的吗?网站上的指南总体上相当糟糕。@onmouse就我所知,它仍然是正确的。如果你需要一个不支持jade布局的引擎,我可以推荐swig。它是一个真正可靠的模板引擎,具有jade的所有功能,但没有haml语法
    <% layout('layout') -%>
    <form>...</form>
    
    <nav>
      <% if ( session.logged_in ) { %>
        <a href="/account">account</a>
        <a href="/logout">logout</a>
      <% } else { %>
        <a href="/signup">signup</a>
        <a href="/login">login</a>
      <% } %>
      <a href="/">home</a>
    </nav>
    
    exports.login.get = function(req, res){
      res.locals.session = req.session;
      res.render('login', { title: 'Login to your account' });
    };
    
    "dependencies": { "express": "3.1.0", "ejs": "*", "express-partials": "*" }