假设我的 index.js 与我的 index.html 位于同一目录中。还有一个包含styles.css的文件夹css。
/
|- index.js
|- index.html
|- css/styles.css
在 index.html 中,我可以使用相对路径指定我的 css 样式,它会指向相对于我的 index.html 的 css/styles.css
<link rel="stylesheet" href="css/styles.css">
但是,在 index.js 中,当我的快递服务器收到 GET 请求而不是
app.get("/", function(req, res) {
res.sendFile("index.html"); // type Error
});
我必须指定一个绝对路径
app.get("/", function(req, res) {
res.sendFile(__dirname + "/index.html");
});
考虑 index.html 能够正确定位(显示无错误)相对路径 css/styles.css
时的行为。为什么同样的逻辑不能应用于 index.js ?
为什么文件系统的行为与我在 index.html 中指定相对路径时的行为不同?
注意:我知道另一种方法是指定一个根。但是,问题的要点是为什么我必须使用绝对路径而不是相对路径(为什么会出错?)
答案 0 :(得分:0)
您可以使用相对路径。路径只是从当前工作目录解析出来的:
使用 __dirname
计算绝对路径意味着您明确地使其相对于 JS 模块的位置,当您将它们捆绑在一起时,该位置始终相对于静态文件位于同一位置。< /p>