错误:ENOENT:没有这样的文件或目录,错误(本地)stat'/public/main.html'

这是我的server.js文件:

 var express = require('express'), app = express(); app .use(express.static('./public')) .get('*',function (req,res) { res.sendfile('/public/main.html'); }) .listen(3000); 

这是我的main.html

 <!DOCTYPE html> <html> <head> <titel>Contacts</titel> <base href'/'> </head> <body> <div class="container"> <div class="page-header"> <h1>Contatcs</h1> </div> </div> </body> </html> 

和文件夹结构:

既然服务器和索引文件都在“公共”目录下,你可以简单地使用:

 res.sendfile('./main.html'); 

你错过了 。 请记住相对目录是

 res.sendfile('./public/main.html'); 
  res.sendfile('/public/main.html'); 

应该改成

  res.sendfile('./public/main.html'); 

我有同样的问题。 在给heroku发邮件之后,我的是个大小写敏感的问题。 我的一个文件全部大写,我必须从那里进行调整。

虽然OP的原因是不同的这个错误,我得到了同样的错误,由于不同的原因,所以我张贴这个为其他人来到这里。

我有一个服务器端脚本,正在改变当前的目录。 由于我们在sendfile使用相对path,所以在脚本运行之后,我开始看到这个错误。 这个shell脚本正在被Node运行。

这个解决scheme适用于我:

 res.sendfile('./main.html');