Это невозможно с помощью одного внедрения промежуточного программного обеспечения, но вы можете внедрить static
промежуточное программное обеспечение несколько раз:
app.configure('development', function(){
app.use(express.static(__dirname + '/public1'));
app.use(express.static(__dirname + '/public2'));
});
Объяснение
Посмотрите на connect / lib / middleware / static.js # 143 :
path = normalize(join(root, path));
Существует options.root
- статический корень, который вы определяете в вызове express.static
или connect.static
, а path
- путь запроса.
Посмотрите больше на connect / lib / middleware / static.js # 154 :
fs.stat(path, function(err, stat){
// ignore ENOENT
if (err) {
if (fn) return fn(err);
return ('ENOENT' == err.code || 'ENAMETOOLONG' == err.code)
? next()
: next(err);
Путь проверяется только один раз, и если файл не найден, запрос передается следующему промежуточному программному обеспечению.
Обновление для Connect 2.x
Ссылки на код неактивны для Connect 2.x, но по-прежнему возможно многократное использование статического промежуточного программного обеспечения.