静的ビューファイルのデプロイメント戦略
静的ビューファイルをデプロイする場合、3 つの方法から 1 つを選択できます。 それぞれに、様々なユースケースに最適なデプロイメント結果が得られます。
次の節では、実装の詳細と各戦略の機能について説明します。
標準戦略
標準戦略を使用すると、すべてのパッケージのすべての静的ビューファイルがデプロイされます。つまり、によって処理されます \Magento\Framework\App\View\Asset\Publisher
.
詳しくは、を参照してください 静的表示ファイルのデプロイ.
迅速な戦略
クイック戦略は、次のアクションを実行します。
-
テーマごとに任意のロケールが 1 つ選択され、標準戦略と同様に、このロケールのすべてのファイルがデプロイされます。
-
テーマのその他すべてのロケールに対して:
- デプロイされたロケールを上書きするファイルが定義され、デプロイされます。
- その他のファイルはすべて、すべてのロケールで類似していると見なされ、デプロイされたロケールからコピーされます。
このアプローチにより、多くのファイルが複製されますが、複数のロケールで必要なデプロイメント時間が最小限に抑えられます。
コンパクト戦略
コンパクト化の方法では、類似ファイルを次の場所に保存することでファイルの重複を回避します。 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 連結を使用しないでください。