找不到视图目录

Posted

技术标签:

【中文标题】找不到视图目录【英文标题】:not able to find views directory 【发布时间】:2021-03-24 02:19:18 【问题描述】:

这是我的代码。

const express = require("express");
const app = express();
const port = 8081;
require('./db/conn');
const path = require("path");

const static_path  = path.join(__dirname,"../public");
const template_path = path.join(__dirname,"../template/views");
console.log(template_path);

app.set("views",template_path);
app.set("view engine","hbs");

app.get("/",(req,res)=>
    res.render("index");
)

app.listen(port,()=>
    console.log("succesfully port");
)

它告诉我这个错误:

错误:无法在视图目录“D:\node and express\dhainik\mernbackend\template\views”中查找视图“索引” 在 Function.render (D:\node and express\dhainik\mernbackend\node_modules\express\lib\application.js:580:17) 在 ServerResponse.render (D:\node and express\dhainik\mernbackend\node_modules\express\lib\response.js:1012:7) 在 D:\node 和 express\dhainik\mernbackend\src\app.js:15:9 在 Layer.handle [as handle_request] (D:\node and express\dhainik\mernbackend\node_modules\express\lib\router\layer.js:95:5) 在下一个(D:\node 和 express\dhainik\mernbackend\node_modules\express\lib\router\route.js:137:13) 在 Route.dispatch (D:\node and express\dhainik\mernbackend\node_modules\express\lib\router\route.js:112:3) 在 Layer.handle [as handle_request] (D:\node and express\dhainik\mernbackend\node_modules\express\lib\router\layer.js:95:5) 在 D:\node 和 express\dhainik\mernbackend\node_modules\express\lib\router\index.js:281:22 在 Function.process_params (D:\node and express\dhainik\mernbackend\node_modules\express\lib\router\index.js:335:12) 在下一个(D:\node 和 express\dhainik\mernbackend\node_modules\express\lib\router\index.js:275:10) 在 expressInit (D:\node 和 express\dhainik\mernbackend\node_modules\express\lib\middleware\init.js:40:5) 在 Layer.handle [as handle_request] (D:\node and express\dhainik\mernbackend\node_modules\express\lib\router\layer.js:95:5) 在 trim_prefix (D:\node and express\dhainik\mernbackend\node_modules\express\lib\router\index.js:317:13) 在 D:\node 和 express\dhainik\mernbackend\node_modules\express\lib\router\index.js:284:7 在 Function.process_params (D:\node and express\dhainik\mernbackend\node_modules\express\lib\router\index.js:335:12) 在下一个(D:\node and express\dhainik\mernbackend\node_modules\express\lib\router\index.js:275:10)

this is my folder structure screenshot

【问题讨论】:

我很好奇我的回答有用吗? 【参考方案1】:

您输入了错误的文件夹名称。 错误信息已告诉您在"D:\node and express\dhainik\mernbackend\template\views" 中快速查找视图。 在您的文件夹结构屏幕截图中,文件夹名称是 templates 而不是 template

// original
const template_path = path.join(__dirname,"../template/views");

// you should use this.
const template_path = path.join(__dirname,"../templates/views");

【讨论】:

非常感谢您的回答对我很有帮助。我从来没有想过这种类型的错误。 不客气。您可以将此标记为答案,让其他人知道您已修复它。【参考方案2】:

我不完全确定,但我认为您必须做的是因为您的视图位于文件夹中,您必须从中导航出来。所以基本上是这样的:

app.get("/",(req,res)=>
    res.render("././index");
)

还要在 express 中启用静态文件夹,你必须这样做:

app.use(express.static('static folders name'));

不确定这一切是否可行,但请尝试告诉我控制台是否给您一条新消息

【讨论】:

以上是关于找不到视图目录的主要内容,如果未能解决你的问题,请参考以下文章

在视图中找不到 ASP.NET 资源

React 在任何根目录中都找不到入口文件

使用 findViewById() 找不到视图

为啥hibernate找不到我的视图

部署到生产时找不到索引视图?

VS2012调试出错,在debug目录下找不到exe文件。