我有以下路线代码:
server.route({
method: 'GET',
path: '/',
handler: {
file: './public/index.html'
}
});
server.route({
method: '*',
path: '/gms/{f*}',
handler: {
proxy: {
mapUri: function(request, callback){
var resourceUri, url;
resourceUri = request.url.path.replace('/gms/', '/');
url = 'http://example.com:81/' + resourceUri;
console.log('url: ', url);
return callback(null, url);
},
passThrough: true,
xforward: true
}
}
});
server.route({
method: 'GET',
path: '/{f*}',
handler: {
directory: {
path: 'public',
listing: 'true',
index: ['index.html']
}
}
});
我希望hapi将/foo/bar
请求重定向到public
目录,如./public/foo/bar
;但来自/gms/foo/bar
的代理http://example.com:81/foo/bar
。
如果我删除第二个或第三个路由,剩余的声明将按预期工作。
我怎样才能使这两者都有效?