5

フロントエンドに 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 ではアプリケーションの context-root がmdp-web/

しかし、AngularJS では、私の uri は次のようになります。/api/users

$resource('/api/users', {}, {
                query: {
                    isArray: true,
                    method:'GET',
                    cache: HttpCache
                }
            });

すべての /api/ uris をプロキシしたいが、/mdp-web/api にリダイレクトしたい

grunt-connect-proxy (おそらく rewrite プロパティを使用) でそれを行うことは可能ですか?

あなたがアイデアを得たら、私はそれを本当に受け入れます!

4

1 に答える 1

2

書き換えルールを使用します。

proxies: [
  {
     context:'/api',
     host: 'localhost',
     port: 8080,
     https: false,
     changeOrigin: true,
     rewrite: {
       '^/api': '/mdp-web/api'
     }
  }
]
于 2013-12-09T17:43:49.880 に答える