静的ビューファイルの展開戦略

静的ビューファイルをデプロイする場合は、使用可能な3つの戦略のいずれかを選択できます。 それぞれ、異なるユースケースに対して最適なデプロイメント結果を提供します。

  • Standard:通常のデプロイメントプロセス。
  • ​ クイック ​ (デフォルト):複数のロケールのファイルをデプロイする場合に、デプロイに必要な時間を最小限に抑えます。
  • ​ コンパクト ​:公開されたビューファイルの容量を最小限に抑えます。

以下の節では、各戦略の実装の詳細と機能について説明します。

標準戦略

標準戦略を使用すると、すべてのパッケージのすべての静的ビューファイルがデプロイされます。つまり、\Magento\Framework\App\View\Asset\Publisherによって処理されます。

詳しくは、静的ビューファイルのデプロイ ​を参照してください。

クイック戦略

クイック戦略では、次のアクションを実行します。

  1. 各テーマについて、任意のロケールが1つ選択され、このロケールのすべてのファイルが標準の戦略のようにデプロイされます。

  2. テーマのその他すべてのロケールの場合:

    1. デプロイされたロケールを上書きするファイルが定義され、デプロイされます。
    2. その他のすべてのファイルは、すべてのロケールで類似していると見なされ、デプロイされたロケールからコピーされます。
INFO
similar​では、ロケール、テーマ、または領域に依存しないファイルを意味します。 これらのファイルには、CSS、画像、フォントが含まれます。

多くのファイルが重複しますが、この方法により、複数のロケールに必要なデプロイメント時間が最小限に抑えられます。

コンパクト戦略

コンパクト化戦略では、base個のサブディレクトリに類似したファイルを保存することで、ファイルの重複を回避します。

最適化された結果を得るために、可能な類似性の3つのスコープ(エリア、テーマ、ロケール)が割り当てられます。 これらのスコープのすべての組み合わせに対して、base サブディレクトリが作成されます。

ファイルは、次のパターンに従ってこれらのサブディレクトリにデプロイされます。

パターン
説明
<area>/<theme>/<locale>
特定の領域、テーマ、ロケールに固有のファイル
<area>/<theme>/default
特定の領域の特定のテーマのすべてのロケールに類似したファイル。
<area>/Magento/base/<locale>
特定の領域とロケールに特化したファイルですが、すべてのテーマで同様です。
<area>/Magento/base/default
特定の領域に特化したファイルですが、すべてのテーマとロケールで同様です。
base/Magento/base/<locale>
すべての領域とテーマに類似していますが、特定のロケールに固有のファイルです。
base/Magento/base/default
すべての分野、テーマ、ロケールで同様です。

デプロイ済みファイルのマッピング

コンパクト戦略で使用されるデプロイメントに対するアプローチは、ファイルが基本テーマとロケールから継承されることを意味します。 これらの継承リレーションは、エリア、テーマ、ロケールの組み合わせごとにマップファイルに保存されます。 PHPとJSには個別のマップファイルがあります。

  • map.php
  • requirejs-map.js

map.php ファイルは、Magento\Framework\View\Asset\Repositoryが正しいURLを作成するために使用します。

requirejs-map.jsは、baseUrlResolver プラグインでRequireJSに使用されています。

例:map.php

return [
    'Magento_Checkout::cvv.png' => [
        'area' => 'frontend',
        'theme' => 'Magento/luma',
        'locale' => 'en_US',
    ],
    '...' => [
        'area' => '...',
        'theme' => '...',
        'locale' => '...'
    ]
];

例:requirejs-map.js

require.config({
    "config": {
       "baseUrlInterceptor": {
            "jquery.js": "../../../../base/Magento/base/en_US/"
        }
    }
});

拡張機能の開発者向けヒント

静的ビューファイルのURLを作成するには、\Magento\Framework\View\Asset\Repository::createAsset()を使用します。

ページのレンダリング中に静的ファイルが見つからず、表示されない問題を回避するために、URLの連結を使用しないでください。

recommendation-more-help
commerce-operations-help-configuration