node.js - ejs include 不适用于子文件夹

标签 node.js express template-engine ejs

我正在使用 express 和 ejs 建立一个网站:

"dependencies": {
 "ejs": "^2.5.2",
 "express": "^4.14.0",

在我的 app.js 中,我将 ejs 定义为模板引擎和 View 的根:

app.set('view engine', 'ejs'); // set view engine
app.set('views', 'app/views'); // set custom root for view engine

然后我创建了我的 index.ejs 文件,其中我包含了一个子目录的部分内容: 索引.ejs

  <head><% include ./partials/template/head %></head>

文件夹结构:

- views
  index.ejs
-- partials
-- -- template
      head.ejs

当启动服务器时,索引加载时没有错误,但没有头部部分。 如果我更改包含(指向错误的位置),服务器无法开始突出显示问题,因此 ejs 能够找到 head.ejs。 如果我在 views 目录中移动 head.ejs,head 就会正确加载到 index.ejs 中。 所以……我有点纳闷,好像在子目录下文件读取了但没有载入include。

在四处搜索后,我尝试使用 express-partials,但没有太大帮助。

有什么线索吗?

干杯,乔瓦尼

最佳答案

像这样改变你的包含语句

<%- include("./partials/template/head.ejs") %>

这对我有用。

关于node.js - ejs include 不适用于子文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40259512/

相关文章:

javascript - 在 Express 应用程序中返回远程 API 数据

node.js - 如何在 express JS 中获取匹配的路由模式?

go - 在golang中执行不带引号的模板

html - Delphi 是否有像 Velocity 或 Freemarker 这样的模板引擎?

python - Jinja 2 安全关键字

javascript - 尝试在 html 文件中实例化 JavaScript 类

node.js - 如何指定 Node.js 函数的计算顺序?

javascript - NodeJS 和 ExpressJS Router.use() 错误

javascript - 如何在调用它的函数末尾执行回调?

javascript - Express 是否要求我使用 POST 路由进行删除?