単純なサーバーを実行しています
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)
このエラーは理解できません。何か案は?私はCloud9で働いています。
私のディレクトリ構造は
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>
インクルードパスは相対パスです。パスを更新して、 "partials"サブフォルダーを含める必要があります。
<% include partials/header %>
<h1>welcome</h1>
<% include partials/footer %>
docs を参照してください