2016-04-17 70 views
0

服務於多條路徑的靜態文件我在我的應用程序所不同的路徑,如:快遞使用正則表達式

  • /a
  • /a/:b
  • /a/:/b/:c/:d

對於像/a路徑,我用:

app.use(express.static(path.join(__dirname, 'public'))); 

對於像/a/:b路徑,我添加另一個這樣的:

app.use('/a', express.static(path.join(__dirname, 'public'))); 

添加express.static每路代替,是否有任何的方式來實現這一點使用一個單一的代碼行可能通過使用正則表達式。 喜歡的東西:

app.use(/\/[a-z]*/, express.static(path.join(__dirname, 'public'))); 
// BTW, this doesn't work 

會是怎樣爲靜態文件的多個路徑的好的做法呢?謝謝。

+0

你爲什麼不只是存儲與子文件夾一個文件夾中的靜態文件/ B/C /什麼? – smnbbrv

+1

如果您的文件存儲磁盤層次結構與URL路徑層次結構相匹配,那麼您可以將所有文件放在一個磁盤層次結構中,只需指定一個頂層即可使用一次「express.static()」調用。 'express.static()'會爲你做多個層次。 – jfriend00

+0

@ jfriend00是的,它通過在靜態鏈接上添加預斜槓來解決。 – dragfire

回答

0

您可以重定向添加斜線:

app.all(/\/[a-z]*/, function(req, res) { 
    res.redirect('/static/'); 
}); 
app.use('/static/', express.static(__dirname + '/public'));