enter image description here我正在尝试运行ejs文件并收到错误错误:找不到包含文件“ partials / head”。
我已经检查了stackoverflow和github上的大多数文章,但是无法解决它...
错误:找不到包含文件“ partials / head” 在getIncludePath(C:\ Users \ Junia \ Desktop \ node \ node_modules \ ejs \ lib \ ejs.js:162:13)中输入 代码在includeSource (C:\ Users \ Junia \ Desktop \ node \ node_modules \ ejs \ lib \ ejs.js:306:17) 在C:\ Users \ Junia \ Desktop \ node \ node_modules \ ejs \ lib \ ejs.js:672:26 在Array.forEach() 在Template.generateSource(C:\ Users \ Junia \ Desktop \ node \ node_modules \ ejs \ lib \ ejs.js:648:15) 在Template.compile(C:\ Users \ Junia \ Desktop \ node \ node_modules \ ejs \ lib \ ejs.js:552:12) 在Object.compile(C:\ Users \ Junia \ Desktop \ node \ node_modules \ ejs \ lib \ ejs.js:388:16) 在handleCache(C:\ Users \ Junia \ Desktop \ node \ node_modules \ ejs \ lib \ ejs.js:212:18) 在tryHandleCache(C:\ Users \ Junia \ Desktop \ node \ node_modules \ ejs \ lib \ ejs.js:251:16) 在View.exports.renderFile中[作为引擎](C:\ Users \ Junia \ Desktop \ node \ node_modules \ ejs \ lib \ ejs.js:480:10)
var express=require('express');
var app=express();
var router=express.Router();
var mysql=require('mysql');
var cookieParser=require('cookie-parser');
var session=require('express-session');
app.use(session({
secret: 'secret',
resave: true,
saveUninitialized: true
//cookie : { maxAge : 60000 }
}));
var path=require('path');
var bodyParser=require('body-parser');
app.use(express.static('/'));
//Serves all the request which includes /images in the url from Images folder
app.use('/images', express.static(__dirname + '/images'));
app.use('/bs4', express.static(__dirname + '/bs4'));
app.use(cookieParser());
const ejsLint = require('ejs-lint');
var con=mysql.createConnection(
{
host:'localhost',
user:'root',
password:'',
database:'shintoj'
});
var path = require('path');
app.use('/',router);
app.use('/',express.static(__dirname + '/'));
app.set('views', path.join(__dirname, 'views/pages'));
app.set('view engine', 'ejs');// use res.render to load up an ejs view file
// index page
router.get('/', function(req, res) {
//res.send('Welcome');
res.render('index');
});
app.listen(8080);
console.log('8080 is the magic port');
console.log(app.get('views'));
index.ejs文件
<head>
<%- include partials/head %>
</head>
<body class="container">
<header>
<% include partials/header.ejs %>
</header>
<div class="jumbotron">
<h2>Welcome to our services .</h2>
<p>Hello</p>
</div>
<footer>
<% include partials/footer.ejs %>
</footer>
预期的实际结果是.. 当我运行node server.js时,它应该显示index.ejs文件
答案 0 :(得分:1)
那是因为您的 ejs 文件位于另一个目录中,即视图 这意味着你的部分目录在你的视图目录之外..
试试这个:
<%- include('../partials/head.ejs') %>
答案 1 :(得分:1)
我在实施时遇到了同样的问题,在投资了大约 2-3 小时后,我发现我在写
<%- include ('partials/header') %>
代替
<%- include('partials/header') %>
嗯,唯一的区别是包含和左括号之间的空格。
答案 2 :(得分:0)
从index.ejs文件的ejs标记中删除标记的页眉和页脚。 或jsut正确包含页眉和页脚文件。像这样
<%- include views-directory/filename %>
答案 3 :(得分:0)
考虑到您调用所需页面的方式,这种情况可能会发生,目前在另一页面中获取一个页面的正确方法是
<%- include('partials/navigation.html')%>