Grunt连接代理重写在https中不起作用

时间:2014-09-23 13:41:16

标签: javascript angularjs proxy gruntjs grunt-connect-proxy

我尝试通过此article创建连接代理。我的代码中几乎所有东西都是一样的,但我需要通过https协议调用一些东西。

connect: {
  options: {
    port: 9000,
      hostname: '0.0.0.0',
      livereload: 35729
  },
  proxies: [{
    context: ['/foo/product', '/foo/somethingelse'],
    host: 'non-https-domain.com',
    changeOrigin: true
    rewrite: {
      '^/foo': ''
    }
  },{
    context: '/productImages',
    host: 'https-domain.com',
    https: true,
    port: 443,  // just trying
    changeOrigin: true,
    rewrite: {
      '^/productImages': ''
    }
  }],
    livereload: {
    // the same like the article
  }
}

/product/somethingelse运作良好,但/productImages没有。

我需要这样称呼它:

localhost:9000/productImages/lot/of/directory/and/finally/a/file.jpg

它应该调用

https://https-domain.com/lot/of/directory/and/finally/a/file.jpg

重点是没有/productImages。但取而代之的从未发生过。

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:2)

我犯了一个愚蠢的错误:名字只有错误!

产品列表有/product代理上下文,图像有/productImages。我使用正则表达式来设置这些名称。而"^/product"也会取代/productImages。 (我只将foo用于测试重写)