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/defaultbase/Magento/base/<locale>base/Magento/base/defaultMappa 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.phprequirejs-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.