ejs包含函数无法找到带有html扩展名的模板

ang*_*iwi 11 ejs node.js express

我的ejs引擎设置是app.js如下:

// this parse html file as ejs file
    app.engine('.html', require('ejs').__express);
    app.set('view engine', 'html');
    app.set('views', __dirname + '/view');
Run Code Online (Sandbox Code Playgroud)

我的目录是这样的:

view (folder)
  home.html
  head.html
app.js
Run Code Online (Sandbox Code Playgroud)

Home.html是这样的:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>home</title>
<% include head %>
</head>

<body>

</body>
</html>
Run Code Online (Sandbox Code Playgroud)

和head.html是这样的:

<link rel="stylesheet" type="text/css" href="css/main.css">
<script type="text/javascript" src="js/jquery-1.5.js"></script>
Run Code Online (Sandbox Code Playgroud)

问题是如果扩展名为html,则不会解析文件head.html.错误说它期待ejs文件.那么include函数有问题吗?

rob*_*lep 11

正如Elie Gnrd所建议的那样,您.ejs可以通过更改view engineExpress 的配置直接使用文件.

如果这不是一个选项,并且您希望/需要继续使用.html作为模板的扩展,则必须明确包含:

<% include head.html %>
Run Code Online (Sandbox Code Playgroud)