Node.js - EJS - 包括部分
我正在尝试为节点使用嵌入式 Javascript 渲染器: https://github.com/visionmedia/ejs
我想知道如何包含另一个视图文件(部分)在 .ejs 视图文件内。
I am trying to use Embedded Javascript renderer for node:
https://github.com/visionmedia/ejs
I would like to know how I can include another view file (partial) inside a .ejs view file.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(14)
对于 Express 3.0:
该路径是相对于包含该文件的调用者的路径,而不是来自使用
app.set("views", "path/to/views")
设置的视图目录。EJS v1 包含
EJS v2 包含
(更新:ejs v3.0.1 的最新语法为
<% - include('myview.ejs') %>
)With Express 3.0:
the path is relative from the caller who includes the file, not from the views directory set with
app.set("views", "path/to/views")
.EJS v1 includes
EJS v2 includes
(Update: the newest syntax for ejs v3.0.1 is
<%- include('myview.ejs') %>
)根据 在模板中包含部分内容的正确方法 您应该使用:
<%- include('partials/youFileName.ejs') %>
。您正在使用:
<% includepartials/yourFileName.ejs %>
已弃用。
The Correct way to include partials in the template according to this you should use:
<%- include('partials/youFileName.ejs') %>
.You are using:
<% include partials/yourFileName.ejs %>
which is deprecated.
在 Express
4.x
中,我使用以下内容加载ejs
:然后您只需要两个文件即可使其工作 -
views/index.ejs
:还有
views/partials/navigation.ejs
:您还可以告诉 Express 使用
ejs
作为 html 模板:最后您还可以使用
ejs
> 布局模块:这将使用
views/layout.ejs
作为布局。In Express
4.x
I used the following to loadejs
:Then you just need two files to make it work -
views/index.ejs
:And the
views/partials/navigation.ejs
:You can also tell Express to use
ejs
for html templates:Finally you can also use the
ejs
layout module:This will use the
views/layout.ejs
as your layout.从 Express 4.x 开始
app.js
error.ejs
As of Express 4.x
app.js
error.ejs
app.js 添加
视图/部分中添加您的部分文件(ejs)
在 index.ejs 的
app.js add
add your partial file(ejs) in views/partials
in index.ejs
Express 3.x 不再支持部分。根据帖子 ejs 'partial is not Define',您可以使用“include” EJS 中的关键字替换已删除的部分功能。
Express 3.x no longer support partial. According to the post ejs 'partial is not defined', you can use "include" keyword in EJS to replace the removed partial functionality.
官方文档中 https://github.com/mde/ejs#includes 显示包含作品像这样:
In oficial documentation https://github.com/mde/ejs#includes show that includes works like that:
还
Also
要包含 ejs 文件,您必须使用:
注意:文件名中不需要使用
.ejs
。For including ejs file you must use:
Note: NO need to use
.ejs
in file name.不用担心,非常简单
仅遵循以下步骤
Nothing to Worry It's Very Simple
Only Follow the Below Step
// app.ejs
<%- include('header'); -%>
//对于文件 header.ejs<%- include('footer'); -%>
// 对于文件 footer.ejsapp.post("/", function(req, res) { res.render("header") });
app.post("/", function(req, res) { res.render("footer") });
// app.ejs
<%- include('header'); -%>
//for file header.ejs<%- include('footer'); -%>
// for file footer.ejsapp.post("/", function(req, res) { res.render("header") });
app.post("/", function(req, res) { res.render("footer") });
要包含 ejs 文件,您必须使用:
<%- include("relative path of ejs ") -%>
For including ejs file you must use:
<%- include("relative path of ejs ") -%>
EJS 本身目前不允许查看部分内容。快递可以。
EJS by itself currently does not allow view partials. Express does.