为什么要使用path.join()而不是仅使用static('public')

威廉

在所有节点速成教程中,我已阅读以下语法用于创建公共目录:

var path = require('path');
app.use(express.static(path.join(__dirname, 'public')))

但是,以下工作正常:

app.use(express.static('public'))

那么,为什么要使用path模块呢?

罗伯特克莱普

最后一个示例使用相对路径,如果您从具有public子目录的目录中启动应用程序,则该路径将起作用

但是,如果您从另一个目录启动应用程序,它将中断。假设您的应用位于,/path/to/app/directory但您/tmp在当前(工作)目录下启动脚本

/tmp$ node /path/to/app/directory/app.js

在这种情况下,Express会尝试将/tmp/public其用作您的静态文件的位置,这是不正确的。

使用path.join(__dirname, 'public')将使用app.js位于其中的目录作为基础来创建绝对路径在上面的示例中,它将解析为/path/to/app/directory/public,如果您从另一个工作目录启动脚本,该脚本也将有效。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章