2017-08-12 28 views
0

新しいアプリケーションのAngle-Cliセットアップを実行しました。私はポートのローカルAPIを提供しているApacheを実行しています。http://localhost/path/to/apiです。もちろん、ng startは、でhttp://localhost:4200になります。Angular-CLIとApacheの問題

関連性がある場合は、Windows 10を使用しています。

だから私は、角度-CLIのプロキシを研究しproxy.config.jsonを作成しました:

{ 
    "/api/": { //I've tried "/api", "/api", "/api/*", none worked 
     "target" : { 
      "host": "localhost", 
      "protocol": "http:", 
      "port": 80 
     }, //also tried just straight "http://localhost" and "http://localhost:80" 
     "secure" : false, 
     "changeOrigin": false, 
     "logLeverl" : "debug", 
     "pathRewrite": { 
      "^/api/clients/public/" : "/path/to/api/clients/public/" 
     } 
    } 
} 

そしてpackage.json経由npm startにそれをフックアップ。特定のパスでテストするために"pathRewrite"を追加しました。コンソールで

、私はコール/api/clients/public/

ためERROR Object { _body: "<!DOCTYPE html> <html lang="en"> <h…", status: 404, ok: false, statusText: "Not Found", headers: Object, type: 2, url: "http://localhost:4200/path/to/api/clients/public/" }は、だから私は知っているURLからのプロキシ設定が働いている(pathRewriteが有効になっている)が、ポートが変更されません取得します。

私はインターネットとドキュメントで見つけた設定のすべての順列を試しました。

アイデアはありますか?

Angularアプリケーションフォルダにシンボリックリンクを使用してみましたが、それはindex.htmlにリダイレクトされています。そのパスをリダイレクトから除外する方法がある場合は、それも私の仕事です。

答えて

0

単純なバージョンのproxy-conf.jsonから始めます。ここで私が使用しているものです:

{ 
    "/api": { 
    "target": "http://localhost:8000", 
    "secure": false 
    } 
} 

と私はNode.jsのサーバー(ポート8000​​上で実行されます)を使用する際にこれが私のために動作し、それはまた、Java Springと正常に動作します

ng serve --proxy-config proxy-conf.json 

でそれを実行しますBoot(Tomcatサーバー)。私のサーバーはデータを返します。なぜパスの書き換えが必要ですか? proxy-conf.jsonの使用は、開発環境のためです。 Apacheでアプリケーションバンドルをデプロイするときは、このプロキシは必要ありません。

+0

私はこの単純なバージョンを試しましたが、悲しいかなか動作しません。 pathRewriteは、問題をデバッグするためのものです。 – dmcblue

+0

フロントエンドがAngularで書かれていない場合にApacheサーバーが提供するデータは何ですか? –