デプロイ
ArcGIS Experience Builder で作成したエクスペリエンスは、ダウンロードして Web サーバーにホストすることができます。プライベート コンテンツを使用しているエクスペリエンスは、ArcGIS Online または ArcGIS Enterprise にアプリを登録する必要があります。エンド ユーザーに最適なユーザー エクスペリエンスを提供するために、エクスペリエンスを展開する前にシステム要件を参照してください。
エクスペリエンスのダウンロード
エクスペリエンス ギャラリーのホームページでエクスペリエンスをダウンロードするには、以下のように ● (3 つのドット) をクリックして ダウンロード をクリックします。ZIP ファイルが作成され、ローカル ドライブにダウンロードされます。ZIP ファイルは、お使いのブラウザー用に定義されたダウンロード ディレクトリーに保存されます。

アプリケーションをダウンロードするには事前にアプリケーションを公開する必要があります。ダウンロードされたエクスペリエンスには Web サーバーのいくつかのデフォルトの設定を構成する web.config ファイルが付属しており、このデフォルト web.config に ArcGIS Maps SDK for JavaScript の設定が含まれるようになりました。
ダウンロードに失敗した場合は、お使いのマシンでウイルス対策ソフトがオンになっているか確認してください。ウイルス対策ソフトをオフにして、もう一度試してください。
エクスペリエンスのデプロイ
エクスペリエンスを Web サーバーにデプロイするには、次の手順を実行します。
- ダウンロードしたエクスペリエンスを解凍し、フォルダーを Web サーバーにコピーします。
- アプリにプライベート コンテンツがある場合は、手順 3 ~ 6 を完了し、そうでない場合はエクスペリエンスのデプロイは完了です。
- アプリを追加して登録します。詳細については、ArcGIS Online/ArcGIS Enterprise を使用した Client ID の作成 を参照してください。
AppIDをコピーし、エクスペリエンス アプリのルート ディレクトリ (例:<.zip ファイル ルート>\cdn\0\config.json) にあるconfig.jsonファイルを開きます。attributesオブジェクトの下にclientIdプロパティを作成します。config.jsonファイルのclientIdプロパティにAppIDを貼り付けます。再度ファイルを保存します。
"attributes": {
"portalUrl": "https://exb.maps.arcgis.com",
"clientId": "EXBAPPsag0XSRtpj"
},server/app name/index.html にアクセスすることでアプリを利用することができます。
デプロイの自動化
Experience Builder サーバーを実行せずにターミナルからアプリの ZIP エクスポートを自動で生成するには、zipApp コマンドを使用します。これは自動デプロイのための DevOps ワークフローでよく使用されます。
ターミナルで Experience Builder (Developer Edition) がインストールされた解凍済みのルート ディレクトリ (“client” フォルダーと “server” フォルダーが含まれるディレクトリ) を参照し、次のコマンドを実行します。
node -e "require('./server/src/middlewares/dev/apps/app-download.js').zipApp('0', 'app.zip', 'my_client_id');"- ‘0’ はエクスポートしたいアプリの ID に置き換えてください。
- ‘app.zip’ は生成したい ZIP ファイルの名前に置き換えてください。
my_client_idを ArcGIS Online または ArcGIS Enterprise の有効なAppIDで置き換えます。詳細については、ArcGIS Online/ArcGIS Enterprise を使用した Client ID の作成を参照してください。- 環境変数
NODE_ENVがproductionに設定されていることを確認し、最小化された (より小さな) ファイルを生成する production ビルドを作成します。
バージョン 1.15 から、zipApp 関数はオプションの第 4 パラメーターをサポートします。このパラメーターは、locales または configModifier のプロパティを持つオブジェクトです。
localesプロパティは、エクスポートするロケールを指定するために使用できます。これが設定されていない場合、すべてのロケールがエクスポートされます。configModifierプロパティは、アプリをエクスポートする前にconfig.jsonファイルを変更するために使用できます。これは関数またはオブジェクトを指定できます。- 関数の場合、
configオブジェクトを引数として呼び出され、変更されたconfigオブジェクトが返されます。 - オブジェクトである場合、以下の例のように更新値を指定することができます。
- 関数の場合、
{
"configModifier": {
"attributes.portalUrl": "new-portal-url"
}
}download-app.js ファイルには、さらに多くの例があります。
サービス ワーカー キャッシュ
Experience Builder ではサービス ワーカーを使用してアセットのキャッシュを先読みし、アプリケーションのロード時間を改善します。デプロイ済みのアプリケーションのソース コード、config.json、またはその他の変更の更新が必要な場合は、Experience Builder (Developer Edition) で更新を行い、アプリケーションを再ダウンロードしてデプロイできます。ただし、ダウンロード パッケージを直接更新する必要がある場合は、次の手順を実行してサービス ワーカー キャッシュを更新する必要があります。
- app ディレクトリで、
cdn/0をcdn/1にリネームします。 - アプリに必要なソース コードの修正や変更を行います。
- アプリケーションのルート フォルダーで
index.htmlを開きます。<base href="./cdn/0/"/>を<base href="./cdn/1/"/>に変更します。buildNumber = '0'をbuildNumber = '1'に変更します。
より良いパフォーマンスのためのキャッシュ ヘッダーの推奨設定は以下のとおりです。
index.htmlを 1 分など非常に短い期間キャッシュするか、キャッシュしない。cdnフォルダーを 1 年間など長期間キャッシュする。