【发布时间】:2016-11-29 05:52:49
【问题描述】:
我正在 node.js 中编写一个简单的应用程序,由于某种原因,我在尝试提供我的 html 时收到错误“TypeError: path must be absolute or specified root to res.sendFile”页。这个错误不应该发生,因为我使用了一个快速中间件,它指定了可以找到这个文件的文件夹。那我为什么会遇到这个问题?
我的应用结构如下所示
MyApp
public
login.html
app.js
我的 html 页面像这样在 app.js 中提供
var express = require("express");
var app = express();
app.use(express.static("public"));
app.get('/', function(req, res){
res.sendFile("login.html");
});
app.listen(3000);
我知道要解决这个问题,我可以执行“res.sendFile(__dirname + '/public/login.html');”相反,但我不应该这样做,因为我使用的是中间件。有什么想法吗?
【问题讨论】:
-
这有点令人困惑,当您给
sendFile()一个文件名时,您是否期望Node 应该在“公共”文件夹中查找?它不会,只有直接访问的静态文件才会以这种方式加载,因此名称为“静态”。 -
@adeneo 是的,我希望它在公用文件夹中查找,因为 login.html 是静态的
-
@AbdennourTOUMI 我正在使用 Mac OS X El Capitan
-
好的。它与我拥有的操作系统相同...我会检查
标签: javascript node.js rest express web-applications