我需要能够拥有多个静态(公共)文件夹,我可以使用以下方法实现:
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
这可能吗?
答案 0 :(得分:1)
当你使用express.static中间件时,它会尝试解析文件(在mymod1中)并将其发回。如果没有找到文件,则下一个中间件是调用并尝试在mymod2中解析,因此只有第一个应该获胜。
如果要添加路线,可以将其精确定位为第一个参数:
app.use('/mymod1', express.static('...'))