转发咕噜连接到不同的url

我使用grunt连接livereload为我的开发环境。

我想能够调用服务器下的生产API。

要做到这一点,我需要指挥任何来电

http://localhost:9000/server

http://www.production-server.com/server

这对我有好处,因为有时我想在开发模式下对生产服务器进行testing。

这是我目前的连接configuration(由Yeoman生成):

 connect: { options: { port: 9000, // Change this to '0.0.0.0' to access the server from outside. hostname: 'localhost', livereload: 35729 }, livereload: { options: { open: true, middleware: function(connect, options, middlewares) { return [ connect.static('.tmp'), connect().use( '/bower_components', connect.static('./bower_components') ), connect.static(appConfig.app) ]; } } }, test: { options: { port: 9001, middleware: function(connect) { return [ connect.static('.tmp'), connect.static('test'), connect().use( '/bower_components', connect.static('./bower_components') ), connect.static(appConfig.app) ]; } } }, dist: { options: { open: true, base: '<%= yeoman.dist %>' } } }, 

我发现了这个问题和解决办法:

首先要做的是使用:grunt-connect-proxy grunt任务来做代理(你可以在那里做任何事情)。 configuration不明显,但您可以在这里find所有的信息(和示例): https : //www.npmjs.org/package/grunt-connect-proxy

我的具体问题是因为我的服务器不接受来自同一个域的任何调用,所以我所做的只是添加“头”属性到configuration与我的域名。 这是新的configuration应该是这样的:

  connect: { options: { port: 9000, // Change this to '0.0.0.0' to access the server from outside. hostname: 'localhost', livereload: 35729 }, server: { proxies: [ { context: '/server', host: 'production-server.com', post: 80, changeOrigin: true, headers: { host: 'simple-layout.com' } } ] }, livereload: { options: { open: true, middleware: function (connect) { return [ proxySnippet, connect.static('.tmp'), connect().use( '/bower_components', connect.static('./bower_components') ), connect.static(appConfig.app) ]; } } }, test: { options: { port: 9001, middleware: function (connect) { return [ connect.static('.tmp'), connect.static('test'), connect().use( '/bower_components', connect.static('./bower_components') ), connect.static(appConfig.app) ]; } } }, dist: { options: { open: true, base: '<%= yeoman.dist %>' } } },