静的ビューファイルの展開戦略
静的ビューファイルをデプロイする場合は、使用可能な3つの戦略のいずれかを選択できます。 それぞれ、異なるユースケースに対して最適なデプロイメント結果を提供します。
以下の節では、各戦略の実装の詳細と機能について説明します。
標準戦略
標準戦略を使用すると、すべてのパッケージのすべての静的ビューファイルがデプロイされます。つまり、\Magento\Framework\App\View\Asset\Publisherによって処理されます。
詳しくは、静的ビューファイルのデプロイ を参照してください。
クイック戦略
クイック戦略では、次のアクションを実行します。
-
各テーマについて、任意のロケールが1つ選択され、このロケールのすべてのファイルが標準の戦略のようにデプロイされます。
-
テーマのその他すべてのロケールの場合:
- デプロイされたロケールを上書きするファイルが定義され、デプロイされます。
- その他のすべてのファイルは、すべてのロケールで類似していると見なされ、デプロイされたロケールからコピーされます。
多くのファイルが重複しますが、この方法により、複数のロケールに必要なデプロイメント時間が最小限に抑えられます。
コンパクト戦略
コンパクト化戦略では、base個のサブディレクトリに類似したファイルを保存することで、ファイルの重複を回避します。
最適化された結果を得るために、可能な類似性の3つのスコープ(エリア、テーマ、ロケール)が割り当てられます。 これらのスコープのすべての組み合わせに対して、base サブディレクトリが作成されます。
ファイルは、次のパターンに従ってこれらのサブディレクトリにデプロイされます。
<area>/<theme>/<locale><area>/<theme>/default<area>/Magento/base/<locale><area>/Magento/base/defaultbase/Magento/base/<locale>base/Magento/base/defaultデプロイ済みファイルのマッピング
コンパクト戦略で使用されるデプロイメントに対するアプローチは、ファイルが基本テーマとロケールから継承されることを意味します。 これらの継承リレーションは、エリア、テーマ、ロケールの組み合わせごとにマップファイルに保存されます。 PHPとJSには個別のマップファイルがあります。
map.phprequirejs-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の連結を使用しないでください。