如何在EJS中包含内容?

时间:2018-10-04 03:24:40

标签: javascript node.js express ejs

我在某些本来应该很简单的事情上遇到了麻烦。 我的网络应用是一个Node.jsexpressejs的应用。

我在index.js中包含这样的代码(在这种情况下非常经典):

var app = express();

app.use('/public', express.static(path.join(__dirname, '/public')));
app.set('port', (process.env.PORT || 5000));
app.use(express.static(__dirname + '/public'));
app.set('views', __dirname + '/views');
app.set('view engine', 'ejs');

现在这是我遇到的问题。

在我所有的.ejs文件中,有些恰好需要相同的代码(由我编写)。为了避免重复,我想将此代码存储在一个单独的文件中,然后在必要时将其包括在内,但是我找不到正确的方法。我将代码放在名为Utils.ejs的文件中(位于partials文件夹中),然后使用了它:

<% include ../partials/Utils.ejs %>

但不起作用。然后,我在网上搜索并尝试了几种变体,但没有任何效果。

有人知道我该怎么做吗?

有关版本的信息,这是我的package.json文件中的内容:

"ejs": "^2.5.7",
"express": "~4.11.x",
"node": ">=4.3"

enter image description here

3 个答案:

答案 0 :(得分:0)

在您导入局部文件时不包括文件扩展名

.ejs中删除<% include ../partials/Utils.ejs %>,然后尝试

答案 1 :(得分:0)

删除“ ..”和“ .ejs”,并确保“ / partials / Utils /”位于公用文件夹中

<% include /partials/Utils %>

答案 2 :(得分:0)

在此行

app.set('views', __dirname + '/views');

做到

app.set('views', __dirname + '/views/pages/');

这样可以正常工作,您可以直接访问所有视图页面(views/pages/),也可以从页面文件夹访问部分视图(views/partials/)。