nodejs表示基于路由的动态静态文件夹

时间:2014-06-15 06:21:11

标签: node.js express

我需要能够拥有多个静态(公共)文件夹,我可以使用以下方法实现:

app.use(express.static(path.join(__dirname, '/routes/mymod1/public'))); 
app.use(express.static(path.join(__dirname, '/routes/mymod2/public')));

这会合并2个文件夹,使它们显示为一个,但问题是如果我在两个文件夹中都有相同的文件名,那么最后一个文件将会获胜。

我想做的是根据请求的路由动态路由静态请求。

例如,对/mymod1/test.html的静态请求将定向到/mymod1/public/test.html,对mymod2 / test.html的请求将定向到/mymod2/public/test.html

这可能吗?

1 个答案:

答案 0 :(得分:1)

当你使用express.static中间件时,它会尝试解析文件(在mymod1中)并将其发回。如果没有找到文件,则下一个中间件是调用并尝试在mymod2中解析,因此只有第一个应该获胜。

如果要添加路线,可以将其精确定位为第一个参数:

app.use('/mymod1', express.static('...'))