如何在文件夹层次结构中使用__dirname

时间:2013-08-06 18:41:00

标签: express

我的应用结构是:

 /app
     /css
     /js
     ..
 /script
    /server.js

我正在尝试使用__dirname在使用

时指向/ app文件夹
app.use(express.static( __dirname + '/app'));

我真的不知道在网上搜索什么,请帮助。

3 个答案:

答案 0 :(得分:38)

如果你在server.js,那么你的意思是

app.use(express.static( __dirname + '/../app'));

答案 1 :(得分:0)

__ dirname只是一个字符串,你可以对它进行字符串操作。

app.use(express.static(__dirname.substring(0, __dirname.indexOf("\\routes") + '\app'));

我会说实话,我把它用于不同的目的:

res.sendFile('./uploads/' + req.params.id + '/' + req.params.filename, {"root": __dirname.substring(0, __dirname.indexOf("\\routes"))});

所以你可能需要使用/ vs \。

答案 2 :(得分:0)

我做了一个简单的解决方案,但它确实有效。在您的启动服务器脚本js中 您可以添加以下内容:

var publicFolder = __dirname + '/public/';
config.public_folder = publicFolder;

然后,只要您需要访问此文件夹,否则在子文件夹或路由中的代码中,您需要注入公用文件夹变量。并像这样使用它:

  res.sendFile(config.public_folder+'unsubscribed-success.html');