You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Node.js中EJS模板的<%- body %>及其中'body'的作用与原理

EJS布局中body变量的功能与工作原理

前置说明

EJS的特性里明确提到:使用<%- body %>进行无转义缓冲。你提供的layout.ejs核心代码如下:

<body>
    <div class="container">
        <%- body %>
    </div>
    <!-- Bootstrap相关脚本省略 -->
</body>

body的核心功能

这里的body是EJS布局机制里的内容占位符变量,核心作用是作为内容插槽:

  • 实现布局复用:将页面通用结构(如容器、全局脚本、导航/页脚)与页面独有内容分离,避免重复编写相同代码
  • 承载动态内容:所有具体页面的自定义HTML内容,最终都会被插入到这个body标记的位置

工作原理

  1. 布局模板定义通用结构:layout.ejs作为全局通用模板,编写所有页面共享的代码,仅用<%- body %>标记动态内容的插入位置。使用<%- %>而非<%= %>的原因是支持无转义输出——如果具体页面包含HTML标签,会直接输出而不会被转换为字符实体(例如<p>不会变成&lt;p&gt;),确保HTML能正常渲染。
  2. 页面视图编写独有内容:你可以创建单独的EJS文件(如home.ejs、profile.ejs),这些文件仅需编写当前页面的独有内容,无需重复编写布局中的通用代码。
  3. 后端渲染拼接完整页面:在Express等后端框架中,当渲染某个具体页面时,会指定使用layout.ejs作为布局。框架会先渲染具体页面的内容,并将结果赋值给body变量;接着渲染布局文件,将body的内容替换到<%- body %>的位置;最后将完整的HTML页面返回给浏览器。

内容的提问来源于stack exchange,提问作者Aquarius_Girl

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 05:55:31