【问题标题】:Is it possible to add multiple <%- %> statements to a node.js ejs layout是否可以将多个 <%- %> 语句添加到 node.js ejs 布局
【发布时间】:2012-06-04 20:29:13
【问题描述】:

我刚开始使用 node.js、express 和 ejs。而且我很难处理 layout.ejs 文件。我正在尝试做的事情类似于您在 .net 中可以做的事情,您有多个内容占位符,并且在视图中您可以有多个块进入不同的占位符。

类似这样的:

<!DOCTYPE html>
<html>
    <head>
         <title><%- title %></title>
    </head>
    <body>
        <%- body %>
    </body>
</html>

我的视图应该是什么样子?

【问题讨论】:

    标签: node.js ejs


    【解决方案1】:

    对于给定的布局文件,您可以编写一个 my_body.ejs 文件,其中包含:

    <% title = 'My Page – My Site' %>
    <p>The body content could go there</p>    
    

    这将呈现:

    <!DOCTYPE html>
    <html>
        <head>
             <title>My Page – My Site</title>
        </head>
        <body>
             <p>The body content could go there</p>
        </body>
    </html>
    

    对于更复杂的表头,也可以使用部分:

    my_body.ejs:

    <% header = partial('_header.ejs') %>
    <p>The body content could go there</p>
    

    _header.ejs:

    <h1>My Page Title</h1>
    

    layout.ejs:

    <!DOCTYPE html>
    <html>
        <head>
             <title>My Page – My Site</title>
        </head>
        <body>
             <div id="header"><%- header %></div>
             <div id="content"><%- body %></div>
        </body>
    </html>
    

    【讨论】:

    • 不完全是我所希望的,但这可以完成工作。非常感谢:)
    • 我很确定以后会添加更好的解决方案。这个项目目前还没有其他项目成熟。
    • my_body.ejs 在哪里被调用?
    【解决方案2】:

    代替

    <!DOCTYPE html>
    <html>
        <head>
             <title>My Page – My Site</title>
        </head>
        <body>
             <div id="header"><%- header %></div>
             <div id="content"><%- body %></div>
        </body>
    </html>
    

    你可以使用

    <!DOCTYPE html>
    <head>
    <title><%= title%></title>
    </head    
    <html>
        <%- partial('header.ejs') %>
    
        <%- body %>
    </html>
    

    您的 layout.ejs 代码

    -tag 应在您的“app.js”中定义为获取方法:

    app.get('/index', function(req, res){
        res.render('index.ejs', { title: 'My Site'});
    });
    

    现在您可以通过“localhost:PORT/index”(默认端口:3000)(在浏览器的地址栏中输入)、“app.js”路由您的 index.html("index.ejs")将路由 index.ejs 并生成整个代码。

    使用 您可以加载代码的 sn-p。标题通常应该加载到您的每个网站上(标题是静态的)。

    现在你必须修改你所有的.ejs-files,但你的layout.ejs。这意味着:

    您的 index.ejs 文件仅包含 html-tags。但是没有标题,没有文档类型 依此类推...,只是你的“身体”的所有标签(从到

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-08-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-16
    • 2011-12-17
    相关资源
    最近更新 更多