2017-11-08 7 views
1

このアプリケーションには、angular4アプリケーションとWeb APIデータサービスがあります。このアプリケーションとデータサービスの100の顧客を持つ。彼らは、IIS上でこのデータサービスと角度アプリケーションを持っています。したがって、100の角形アプリケーションごとに、別のエンドポイントアドレスを使用します。したがって、すべての顧客の角度のあるアプリケーションでは、エンドポイントアドレスを設定するための設定が必要です。これは、顧客に設定する必要があります。角度アプリケーションの任意のファイルに定数エンドポイントを書き込むことはできません。角度4/5のアプリケーションでこれを解決するには?角度4/5アプリケーションのサービスエンドポイントを設定する

+0

もっと正確に言えば、* .ts(環境* .ts)ファイルでエンドポイントを変更することはできないため、エンドポイントをハードコード化することはできません。私は、顧客ごとに個別に変更できるクライアントアプリケーション構成ファイルが必要です。データサービス(asp.net web api)は大丈夫です、彼のweb.configがあります - それは動作します。しかし、角度アプリケーションの設定ファイルはサポートされていません。 – bmi

答えて

0

私がこの問題で見た1つの解決策は、プロジェクトのassetsフォルダにconfiguration.json(またはいずれかの名前)というファイルを作成して、いつでもすべてのエンドポイントを変更することですサイトに展開します。

コードでは、ファイルからjsonを読み取り、データサービスエンドポイントが必要なアプリケーションの部分にオブジェクトとして公開する角度サービスを作成する必要があります。これには、HttpClientを使用してconfiguration.jsonファイルに対してGET要求を行う必要があります。

さらに、サービスを使用するリゾルバを使用して、各ルートにナビゲートする前に環境データを解決できます。

この記事では、十分に解決策を説明しますhttps://www.intertech.com/Blog/deploying-angular-4-apps-with-environment-specific-info/

主なポイントは、ファイル内のエンドポイントを変更することができ、アプリケーションが実行時にそれらを解決することです。

+1

ありがとう、私はこのようなものを見つけました - assetsフォルダからの(json)設定ファイルの読み込み。しかし、私の知るように、Webアプリケーションにはローカルファイルの読み込みに問題があります。恐らくセキュリティのためです。しかし、WebアプリのURLがWebクライアントのURLと似ている場合、アセットフォルダからファイルを読み取ることができます。場合によっては、結果が悪い(Webアプリケーションで無効なパス、アセットファイルへの相対パスがうまくいかない)。私は、APP_INITIALIZER、javascript関数の使用でいくつかの許容可能なソリューションを見つけました。これは、AOTコンパイルとプロードモードで動作します。 – bmi

関連する問題