错误:找不到包含文件“ partials / head”

时间:2019-02-17 08:14:03

标签: node.js ejs

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文件

4 个答案:

答案 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')%>