我在运行一个简单的服务器
var express = require('express')
var app = express()
app.set('view engine', 'ejs');
app.use(express.static('public'))
// home page request handler
app.get('/', function (req, res) {
res.render('home')
})
// initializes request listener
app.listen(process.env.PORT, process.env.IP, function(){
console.log("Server is listening");
})
当我对主页发出GET请求时,运行时抛出以下错误
Error: Could not find include include file.
at getIncludePath (/home/ubuntu/workspace/node_modules/ejs/lib/ejs.js:152:13)
at includeSource (/home/ubuntu/workspace/node_modules/ejs/lib/ejs.js:276:17)
at /home/ubuntu/workspace/node_modules/ejs/lib/ejs.js:629:26
at Array.forEach (native)
at Object.generateSource (/home/ubuntu/workspace/node_modules/ejs/lib/ejs.js:605:15)
at Object.compile (/home/ubuntu/workspace/node_modules/ejs/lib/ejs.js:509:12)
at Object.compile (/home/ubuntu/workspace/node_modules/ejs/lib/ejs.js:358:16)
at handleCache (/home/ubuntu/workspace/node_modules/ejs/lib/ejs.js:201:18)
at tryHandleCache (/home/ubuntu/workspace/node_modules/ejs/lib/ejs.js:223:14)
at View.exports.renderFile [as engine] (/home/ubuntu/workspace/node_modules/ejs/lib/ejs.js:437:10)
我不明白这个错误。有什么想法吗?我在云9工作。
我的目录结构是
v1.1
+---views
| +---- home.ejs
| +---- partials
| +------ header.ejs
| +------ footer.ejs
|
+----app.js
home.ejs
<% include header %>
<h1>welcome</h1>
<% include footer %>
header.ejs
<DOCTYPE! html>
<html>
<head>
<title>
<link rel="stylesheet" hreff="app.css">
</title>
</head>
<body>
footer.ejs
</body
</html>
9条答案
按热度按时间6l7fqoea1#
包含路径是相对的,你需要更新你的路径,以包含“partials”子文件夹e。g的。
见文档
xtfmy6hx2#
试试这些:
siv3szwd3#
对我来说,我必须设置根参数,
然后用它像,
xoshrz7s4#
试试这个:
pxq42qpu5#
1.左侧文件资源管理器
1.右键单击'。ejs文件
1.点击“复制路径”
1.然后粘贴该路径
在我的情况下,操作系统Ubuntu,路径是这样的
编辑
我在写答案时忘记了'%'。
8oomwypt6#
〈%- include('不添加的文件名。js')%〉
先决条件:确保文件名与上面声明的名称相关。即(Header不等于header。)
eoigrqb67#
不要把扩展名放在文件名后面。例如,执行以下操作:
不是这个:
如果在一个循环中有多个包含,不要将整个循环放在一个
<% %>
块中。将开始和结束放在它们自己的<% %>
中,将包含放在<%- %>
标记中。它不能只使用<% %>
标签,你需要使用<%- %>
:w6lpcovy8#
我也遇到了这个问题,但我添加了文件扩展名,它确实为我工作。尝试以下方法:
ss2ws0br9#
面临相同问题,通过以下方式解决