1

主に JavaScript に基づいた Web サイトを持っています。REST サービスを使用します。JavaScript ページに REST サービスの URL をハードコーディングしました。URL は PROD から testing に変更されます。このサイトを別の環境にデプロイするたびに、.JS ファイルを更新する必要があります。これらを管理する最善の方法は何ですか? これを行うより良い方法はありますか?

4

3 に答える 3

2

JS が読み込まれている現在のページの URL を取得できますlocation.href。それといくつかの文字列操作を使用して、これらの RESTful URL を動的に作成できます。

于 2012-07-06T14:53:06.483 に答える
1

私は通常、これらのアドレスとその他の展開に影響を与える値を、実行時にサーバーによって生成される個別のスクリプト ブロックに分離します。

例: (ここでは ASP.NET MVC ですが、任意の言語/フレームワークにすることができます)

<script type="text/javascript">
    var pageOptions =
    {
        "detailsDataUrl": '@Url.Action("LoadDetail", "Contact")',
        "applicationBase": '@Url.Content("~")'
    };
</script>

または、この種のデータのみを含む 1 つのファイルの複数のバージョンを使用することもできます。デプロイ プロセスの一部は、環境のバージョンをデプロイすることです。

更新: K. Scott Allen は、サーバー コードから JavaScript コードにデータを渡すためのさまざまなオプションについて非常に優れた投稿を行いました。これはほんの一例です。ここで読むことができます。特に、彼は、上記のパターンを形式化し、いくつかの便利なベルとホイッスルを追加するNGNと呼ばれるライブラリについて言及しています。いくつかのプロジェクトに追加しましたが、非常に便利です。

于 2012-07-06T14:52:28.670 に答える
1

やり方は人によって少し異なりますが、通常はビルド システムを使用して行われます。ビルド中、ビルドを実行しているサーバーには、「prod」、「qa」、「dev」などの値を持つ環境変数があります。Web アプリ コンポーネントがビルドされるとき、1 つの手順として、ファイルに配置したトークンを環境に適した値に置き換える必要があります。

安静なエンドポイントに相対パスを使用する場合、これを行う必要はありません。ホスト/プロトコル/ポート情報を変更する必要がある場合にのみ、これを行う必要があります。これはひどい。テストしている環境を把握し、 /etc/hosts を使用して標準の URL を環境固有の URL にマップすることをお勧めします。たとえば、アプリが使用する場合

www.myapp.com

その URL を にマップする環境をセットアップできますqa.myapp.com:80。スクリプトを使用して、必要な環境のホスト ファイルの変更を管理します。

于 2012-07-06T14:54:53.227 に答える