我在前端有一个AngularJS的应用程序,后端有一个Java Spring 3的应用程序。
因此,当我运行grunt-server时,我使用grunt-connect-proxy联系后端部分,从前端部分开始。
所以我的连接配置是这样的:
connect: {
proxies: [
{
context:'/mdp-web',
host: 'localhost',
port: 8080,
https: false,
changeOrigin: true
}
],
options: {
port: 9000,
// Change this to '0.0.0.0' to access the server from outside.
hostname: 'localhost'
},
livereload: {
options: {
middleware: function (connect) {
return [
proxySnippet,
lrSnippet,
mountFolder(connect, '.tmp'),
mountFolder(connect, cegedimConfig.app)
];
}
}
}
}
但我的问题是,在Java中,应用程序的上下文根是mdp-web/
但是在AngularJS中我的uri就像:/api/users
$resource('/api/users', {}, {
query: {
isArray: true,
method:'GET',
cache: HttpCache
}
});
我想代理所有/ api / uris,但重定向到/ mdp-web / api
是否可以使用grunt-connect-proxy(可能带有重写属性)来做到这一点?
如果你有个主意,我真的会接受它!
答案 0 :(得分:2)
使用重写规则:
proxies: [
{
context:'/api',
host: 'localhost',
port: 8080,
https: false,
changeOrigin: true,
rewrite: {
'^/api': '/mdp-web/api'
}
}
]