Distributionsstrategier för statiska vyfiler
När du distribuerar statiska vyfiler kan du välja en av de tre tillgängliga strategierna. Vart och ett av dem ger optimala distributionsresultat för olika användningsområden:
I följande avsnitt beskrivs implementeringsdetaljer och funktioner för varje strategi.
Standardstrategi
När standardstrategin används distribueras alla statiska vyfiler för alla paket, det vill säga bearbetas av \Magento\Framework\App\View\Asset\Publisher
.
Mer information finns i Distribuera statiska vyfiler.
Snabbstrategi
Den snabba strategin utför följande åtgärder:
-
För varje tema väljs ett valfritt språkområde och alla filer för det här språkområdet distribueras, som i standardstrategin.
-
För alla andra språkområden i temat:
- Filer som åsidosätter det distribuerade språket definieras och distribueras.
- Alla andra filer betraktas som lika för alla språkområden och kopieras från det distribuerade språkområdet.
Den här metoden minimerar den driftsättningstid som krävs för flera språkområden, även om många filer är duplicerade.
Kompakt strategi
Den kompakta strategin undviker filduplicering genom att lagra liknande filer i base
underkataloger.
För det mest optimerade resultatet fördelas tre omfång för möjlig likhet: område, tema och språkområde. base
-underkatalogerna skapas för alla kombinationer av dessa omfattningar.
Filerna distribueras till dessa underkataloger enligt följande mönster.
<area>/<theme>/<locale>
<area>/<theme>/default
<area>/Magento/base/<locale>
<area>/Magento/base/default
base/Magento/base/<locale>
base/Magento/base/default
Mappa distribuerade filer
Den distributionsmetod som används i den kompakta strategin innebär att filer ärvs från basteman och språkområden. De här arvsrelationerna lagras i kartfilerna för varje kombination av område, tema och språkområde. Det finns separata kartfiler för PHP och JS:
map.php
requirejs-map.js
Filen map.php
används av Magento\Framework\View\Asset\Repository
för att skapa korrekta URL:er.
requirejs-map.js
används av plugin-programmet baseUrlResolver
för RequireJS.
Exempel på map.php
:
return [
'Magento_Checkout::cvv.png' => [
'area' => 'frontend',
'theme' => 'Magento/luma',
'locale' => 'en_US',
],
'...' => [
'area' => '...',
'theme' => '...',
'locale' => '...'
]
];
Exempel på requirejs-map.js
:
require.config({
"config": {
"baseUrlInterceptor": {
"jquery.js": "../../../../base/Magento/base/en_US/"
}
}
});
Tips för tilläggsutvecklare
Använd \Magento\Framework\View\Asset\Repository::createAsset()
om du vill skapa URL:er till statiska vyfiler.
Använd inte URL-sammanfogningar för att undvika problem med att statiska filer inte hittas och inte visas under sidåtergivning.