您是使用express.static(‘;public’;)还是(path.join(&#u dirname,‘;public’;)?

您是使用express.static(‘;public’;)还是(path.join(&#u dirname,‘;public’;)?,express,Express,我的树: ├── app.js ├── data │ └── stuff.json ├── package.json ├── public │ ├── index.html │ ├── main.js ├── routes └── api.js 下面是我在app.js文件中使用的两行代码,用于提供静态文件public/index.html 第一个选项很好。据我所知,它将用户定向到相对于app.js的公共目录: app.use(express.static('publi

我的树:

├── app.js
├── data
 │   └── stuff.json
├── package.json
├── public
 │   ├── index.html
 │   ├── main.js
├── routes
    └── api.js
下面是我在app.js文件中使用的两行代码,用于提供静态文件public/index.html

第一个选项很好。据我所知,它将用户定向到相对于app.js的公共目录:

app.use(express.static('public'))
下面的第二行行不通。据我所知,这是公共目录的绝对路径

app.use(express.static(path.join(__dirname, 'public')))

这似乎暗示了第一种选择,但大多数网站和书籍都鼓励第二种选择。为什么/何时鼓励第二次?为什么在这种情况下对我不起作用

express.static
只需委托到
path.resolve()
。因此,我将
console.log
这两种情况下的路径。感谢您的评论。(path.join(_dirname+/public'))注销绝对路径,而另一种情况生成相对路径。在这里,绝对路径对我来说似乎没有任何用处,但它经常被使用——我想知道在什么情况下它会被证明是有用的?