静的ビューファイルのデプロイメント戦略

静的ビューファイルをデプロイする場合、3 つの方法から 1 つを選択できます。 それぞれに、様々なユースケースに最適なデプロイメント結果が得られます。

  • 標準:通常のデプロイメントプロセス。
  • クイックdefault):複数のロケールのファイルがデプロイされる場合に、デプロイメントに要する時間を最小限に抑えます。
  • コンパクト:公開済みのビューファイルに必要な領域を最小限に抑えます。

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

標準戦略

標準戦略を使用すると、すべてのパッケージのすべての静的ビューファイルがデプロイされます。つまり、によって処理されます \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
386822bd-e32c-40a8-81c2-ed90ad1e198c