Node.js 使用Express提供HTML文件

Node.js 使用Express提供HTML文件,node.js,express,Node.js,Express,更新:如果我通过指定address/edit.html而不是address/edit来访问edit.html,它就会工作 我在提供index.html以外的html文件时遇到问题 My server.js的外观如下所示: // EXPRESS CONFIG app.use(express.favicon()); app.use(express.bodyParser()); app.use(express.static(__dirname + "/public/views")); app.use(

更新:如果我通过指定address/edit.html而不是address/edit来访问edit.html,它就会工作

我在提供index.html以外的html文件时遇到问题

My server.js的外观如下所示:

// EXPRESS CONFIG
app.use(express.favicon());
app.use(express.bodyParser());
app.use(express.static(__dirname + "/public/views"));
app.use(express.static(__dirname + "/public/js"));
app.use(express.static(__dirname + "/public/css"));
app.use(express.static(__dirname + "/public/media"));
app.engine("html", require("ejs").renderFile);

// LOAD ROUTES
require("./server/routes/index")(app);
require("./server/routes/edit")(app);
require("./server/routes/dev")(app);
require("./server/routes/stat")(app);
require("./server/routes/contacts")(app);
require("./server/routes/remarks")(app);
路由示例(edit.js)

试图通过导航到网站/编辑路径来访问HTML文件会产生500内部服务器错误

Error: Failed to lookup view "edit.html" in views directory "C:\Users\andersl\Desktop\informr-test/views" at Function.app.render (C:\Users\andersl\Desktop\informr-test\node_modules\express\lib\application.js:493:17) at ServerResponse.res.render (C:\Users\andersl\Desktop\informr-test\node_modules\express\lib\response.js:798:7) at C:\Users\andersl\Desktop\informr-test\server\routes\edit.js:6:13 at callbacks (C:\Users\andersl\Desktop\informr-test\node_modules\express\lib\router\index.js:164:37) at param (C:\Users\andersl\Desktop\informr-test\node_modules\express\lib\router\index.js:138:11) at pass (C:\Users\andersl\Desktop\informr-test\node_modules\express\lib\router\index.js:145:5) at Router._dispatch (C:\Users\andersl\Desktop\informr-test\node_modules\express\lib\router\index.js:173:5) at Object.router (C:\Users\andersl\Desktop\informr-test\node_modules\express\lib\router\index.js:33:10) at next (C:\Users\andersl\Desktop\informr-test\node_modules\express\node_modules\connect\lib\proto.js:193:15) at SendStream.error (C:\Users\andersl\Desktop\informr-test\node_modules\express\node_modules\connect\node_modules\serve-static\index.js:74:37)
以下app.use组合也不成功:

app.use(express.static(__dirname + '/public'));
app.use("/public", express.staticProvider(__dirname + '/public'));
奇怪的是index.html工作得很好,但只有这条路径

我的应用程序的结构如下:

server.js
/public
  /views - all html files
  /js
  /css
  /media
/server
  /routes
  etc...
我不明白的是什么,解决办法是什么


谢谢。

设置视图路径是解决方案

app.set('views', __dirname + '/public/views');
app.set('views', __dirname + '/public/views');