Compacte strategie
Met de compacte strategie vermijdt u bestandsduplicatie door vergelijkbare bestanden op te slaan in submappen van base
.
Voor het geoptimaliseerde resultaat worden drie bereiken voor mogelijke gelijkenis toegewezen: gebied, thema en landinstelling. De submappen van base
worden gemaakt voor alle combinaties van deze bereiken.
De bestanden worden op basis van de volgende patronen naar deze submappen geïmplementeerd.
Patroon | Beschrijving |
---|---|
<area>/<theme>/<locale> | Bestanden die specifiek zijn voor een bepaald gebied, thema en landinstelling |
<area>/<theme>/default | Bestanden die vergelijkbaar zijn voor alle landinstellingen van een bepaald thema in een bepaald gebied. |
<area>/Magento/base/<locale> | Bestanden die specifiek zijn voor een bepaald gebied en een bepaalde landinstelling, maar die vergelijkbaar zijn voor alle thema's. |
<area>/Magento/base/default | Bestanden die specifiek zijn voor een bepaald gebied, maar vergelijkbaar voor alle thema's en landinstellingen. |
base/Magento/base/<locale> | Bestanden die vergelijkbaar zijn voor alle gebieden en thema's, maar specifiek zijn voor een bepaalde landinstelling. |
base/Magento/base/default | Vergelijkbaar voor alle gebieden, thema's en landinstellingen. |
Geïmplementeerde bestanden toewijzen
De benadering van plaatsing die in de compacte strategie wordt gebruikt betekent dat de dossiers van basisthema's en scènes worden geërft. Deze overervingsrelaties worden opgeslagen in de kaartbestanden voor elke combinatie van gebied, thema en landinstelling. Er zijn afzonderlijke toewijzingsbestanden voor PHP en JS:
map.php
requirejs-map.js
Het map.php
dossier wordt gebruikt door Magento\Framework\View\Asset\Repository
om correcte URLs te bouwen.
De requirejs-map.js
wordt gebruikt door de baseUrlResolver
-insteekmodule voor RequireJS.
Voorbeeld van map.php
:
return [
'Magento_Checkout::cvv.png' => [
'area' => 'frontend',
'theme' => 'Magento/luma',
'locale' => 'en_US',
],
'...' => [
'area' => '...',
'theme' => '...',
'locale' => '...'
]
];
Voorbeeld van requirejs-map.js
:
require.config({
"config": {
"baseUrlInterceptor": {
"jquery.js": "../../../../base/Magento/base/en_US/"
}
}
});
Tips voor ontwikkelaars van extensies
Gebruik \Magento\Framework\View\Asset\Repository::createAsset()
om URLs aan statische meningsdossiers te bouwen.
Gebruik geen URL-aaneenschakelingen om problemen te voorkomen waarbij statische bestanden niet worden gevonden en niet worden weergegeven tijdens het weergeven van pagina's.