javascript - 错误:无法在视图目录中查找视图“home.hbs”
问题描述
我正在实现一个具有三层架构的 Web 应用程序。现在我正在尝试在我的视图文件夹中呈现一个文件。这是我的文件夹结构和代码:
但是当我运行它时,我收到以下错误:
Error: Failed to lookup view "home.hbs" in views directory "/web-app/pl/views"
任何建议如何使这项工作?
解决方案
您的错误在此代码中,请
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.hbs
的views
文件夹中。
因此,您的文件夹将如下所示:
- 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
我希望它可以帮助你。
推荐阅读
- node.js - 使用letsencrypt和nodejs设置SSL
- arrays - 是否有关于何时使用 JSON 对象而不是带有“名称”键的数组的经验法则?
- powershell - powershell - zabbix 采用 cpu 进程并发送 %
- python - 为什么 import subprocess.Popen 不起作用,而 from subprocess import Popen 起作用?我允许在 python 中导入什么“类型”的对象?
- wpf - 将多个 ItemsControl 绑定到一个 ObservableCollection
- swift - 按日期对 HealthKit 数据进行排序
- react-native - 在 RN 中使用多个视图时的边距
- math - 三次贝塞尔路径——在拉直弧长的同时保持弧长
- jenkins - 为什么 Jenkins 因错误而失败:退出 9009
- android - 如何调试 D8 错误,例如“类型 X 被引用为 Y 的接口”?