我有以下目录结构
/app
js
css
/node
server.js
index.html
dashboard.html
我正在使用
app.use(express.static( __dirname + '/../'));
用于访问index.html和dashobard.html(在server.js中)
以下路线运作正常:
app.get('/',function(req,res){
res.sendfile('index.html');
});
但是这个不起作用
app.get('/dashboard',ensureAuthenticated,function(req,res){
res.sendfile('dashboard.html');
});
我明白了
Error: ENOENT, stat 'dashboard.html'
答案 0 :(得分:1)
您可以在没有express.static
的情况下调用res.sendfile针对您的问题:
我猜 res.sendfile('index.html')
和res.sendfile('dashboard.html')
不正确,它们应该是
var root = fs.realpathSync('..');
res.sendfile(path.join(root, 'index.html'))
res.sendfile(path.join(root, 'dashboard.html'));
但为什么你没有看到app.get('/', ...)
上的错误?
因为它已经被静态中间件处理了。注意/< ==> /index.html。
关于错误/仪表板
app.get('/dashboard', ...)
被调用,但无法在'/node'
文件夹中找到“dashboard.html”,因此发生了错误的ENOENT。