在所有节点速成教程中,我已阅读以下语法用于创建公共目录:
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] 删除。
我来说两句