Nodejs / Express:错误:无法在视图目录中查找视图“错误”

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Nodejs / Express:错误:无法在视图目录中查找视图“错误”相关的知识,希望对你有一定的参考价值。

我将nodejs模板引擎切换到ejs(来自jade)。当我用我的ejs模板运行我的app.js时,我收到一系列“在视图中查找错误'错误”日志。

其中一些包括:

GET /css/bootstrap.min.css 500 12.588 ms - 1390
Error: Failed to lookup view "error" in views directory
...
GET /css/clean-blog.min.css
Error: Failed to lookup view "error" in views directory
...
GET /js/bootstrap.min.js
Error: Failed to lookup view "error" in views directory
...
GET /js/jquery.js
Error: Failed to lookup view "error" in views directory

事实上,许多这些依赖项都包含在模板本身中(通过脚本标记包含在内)。什么是让它们在快递中工作的适当位置?似乎表达最终不应该在views文件夹中查找这些(因为它们不是视图)。

答案

确保您的Express App具有此设置,对于当前布局,您听起来就像这样。

// Require static assets from public folder
app.use(express.static(path.join(__dirname, 'public')));

// Set 'views' directory for any views 
// being rendered res.render()
app.set('views', path.join(__dirname, 'views'));

// Set view engine as EJS
app.engine('html', require('ejs').renderFile);
app.set('view engine', 'html');

res.render()呈现的视图放置在应用程序顶层的“Views”目录中是很正常的。 express-generator实际上使用了该视图设置。您可以通过修改以下行来更改它

// replace with the directory path below ./
app.set('views', path.join(__dirname, 'views'));
另一答案

Express似乎找不到您的文件,因此您的可怜的小服务器想要返回错误,但views目录中缺少您的错误文件。

在views目录中,您只需创建一个名为error.jade的文件。

然后你必须搜索Express搜索文件的位置。

以上是关于Nodejs / Express:错误:无法在视图目录中查找视图“错误”的主要内容,如果未能解决你的问题,请参考以下文章

无法读取未定义的属性“名称” - mongoose、express、nodeJS、ejs

无法使用res.redirect()方法重定向express + NodeJS [重复]

节点无法在 Express/react 应用程序中查找视图“错误”

Express 错误 500:无法在视图目录“/app/views”中查找视图“index.html”

端口 34037 已在使用 Heroku + Nodejs + Express + WebSockets

NodeJS框架Express的模板视图机制