首页 > 解决方案 > 错误:无法在视图目录中查找视图“home.hbs”

问题描述

我正在实现一个具有三层架构的 Web 应用程序。现在我正在尝试在我的视图文件夹中呈现一个文件。这是我的文件夹结构和代码:

在此处输入图像描述

但是当我运行它时,我收到以下错误:

Error: Failed to lookup view "home.hbs" in views directory "/web-app/pl/views"

任何建议如何使这项工作?

标签: javascriptexpressexpress-handlebars

解决方案


您的错误在此代码中,请app.set('views', path.join("/web-app/pl", "views"));确保/在您的/web-app. 所以它的意志看起来像这样app.set('views', path.join("web-app/pl", "views"));

‍确保在您的根应用程序中创建一个文件夹:web-app/pl/views并将您的文件夹放入您home.hbsviews文件夹中。

因此,您的文件夹将如下所示:

- public
- node-modules
- src > server.js
- web-app > pl > views > home.hbs // if set in render { layout: false }
- web-app > pl > views > layouts > main.hbs // default layout

‍ 例如,您的app遗嘱如下所示:

const express = require('express');
const expressHandlebars = require('express-handlebars');
const path = require('path');

const app = express();

app.set('views', path.join("web-app/pl", "views"));
app.engine("hbs", expressHandlebars({
  defaultLayout: "main.hbs"
}))

app.set('view engine', 'hbs');

app.use(express.static('public'));

app.get('/', function (req, res) {
  res.render('home', {
    layout: false
  })
});

app.listen(3000, () => {
  console.log('Server is up');
})

例如,您可以在我的代码盒中看到:https ://codesandbox.io/s/strange-darkness-73opp

我希望它可以帮助你。


推荐阅读