如何提供静态文件的dynamic?

比如我想根据用户访问的二级域名,定位到相应的目录:

app.use(express.static(path.join(__ dirname,'/ public')));

至:

app.use(express.static(path.join(__ dirname,'/'+ domain +'/ public')));

假设在文件夹[domain]/public有一个名为“foo.png”的文件。 使用app.use(express.static(path.join(__dirname, '/'+domain+'/public'))); 将使得该文件可从http://localhost/foo.png获取。 根据我对你的问题的理解,这不是你想要的。

你应该寻找res.sendfile并做类似的事情

 app.get('/:username/:file', function(req, res){ res.sendfile(path.join(__dirname, req.params.username, req.params.file)); }); 

这样您还可以使用中间件来添加一些安全性,以确保用户无法访问其他用户的文件。

如果你不介意安全的事情,你可以简单地添加公用文件夹中的所有用户的文件夹(你可以select任何你想要的文件夹的名称),只使用app.use(express.static(path.join(__dirname, '/public')));

这样你就可以用http://localhost/[username]/foo.png来访问这些文件