Strategie di distribuzione per i file di visualizzazione statica
Quando si distribuiscono i file di visualizzazione statica, è possibile scegliere una delle tre strategie disponibili. Ciascuno di essi fornisce risultati di distribuzione ottimali per diversi casi d’uso:
Le sezioni seguenti descrivono i dettagli e le caratteristiche di implementazione di ciascuna strategia.
Strategia standard
Quando si utilizza la strategia Standard, vengono distribuiti tutti i file di visualizzazione statica per tutti i pacchetti, ovvero elaborati da \Magento\Framework\App\View\Asset\Publisher
.
Per ulteriori informazioni, vedere Distribuire i file di visualizzazione statici.
Strategia rapida
La strategia rapida esegue le azioni riportate di seguito.
-
Per ogni tema viene scelta una lingua arbitraria e vengono distribuiti tutti i file per questa lingua, come nella strategia standard.
-
Per tutte le altre lingue del tema:
- I file che sostituiscono le impostazioni locali distribuite vengono definiti e distribuiti.
- Tutti gli altri file sono considerati simili per tutte le impostazioni locali e vengono copiati dalle impostazioni locali distribuite.
Questo approccio riduce al minimo il tempo di distribuzione necessario per più impostazioni locali, anche se molti file sono duplicati.
Strategia compatta
La strategia compatta evita la duplicazione dei file archiviando file simili in sottodirectory base
.
Per ottenere il risultato più ottimizzato, vengono assegnati tre ambiti per una possibile somiglianza: area, tema e impostazioni internazionali. Le sottodirectory base
vengono create per tutte le combinazioni di questi ambiti.
I file vengono distribuiti in queste sottodirectory in base ai seguenti modelli.
<area>/<theme>/<locale>
<area>/<theme>/default
<area>/Magento/base/<locale>
<area>/Magento/base/default
base/Magento/base/<locale>
base/Magento/base/default
Mappatura dei file distribuiti
L'approccio alla distribuzione utilizzato nella strategia compatta implica che i file vengono ereditati dai temi di base e dalle impostazioni internazionali. Queste relazioni di ereditarietà vengono memorizzate nei file di mappa per ogni combinazione di area, tema e impostazioni internazionali. Esistono file di mappa separati per PHP e JS:
map.php
requirejs-map.js
Il file map.php
è utilizzato da Magento\Framework\View\Asset\Repository
per generare gli URL corretti.
requirejs-map.js
è utilizzato dal plug-in baseUrlResolver
per RequireJS.
Esempio di map.php
:
return [
'Magento_Checkout::cvv.png' => [
'area' => 'frontend',
'theme' => 'Magento/luma',
'locale' => 'en_US',
],
'...' => [
'area' => '...',
'theme' => '...',
'locale' => '...'
]
];
Esempio di requirejs-map.js
:
require.config({
"config": {
"baseUrlInterceptor": {
"jquery.js": "../../../../base/Magento/base/en_US/"
}
}
});
Suggerimenti per gli sviluppatori di estensioni
Per generare gli URL per i file di visualizzazione statica, utilizzare \Magento\Framework\View\Asset\Repository::createAsset()
.
Non utilizzare le concatenazioni URL per evitare problemi con i file statici che non vengono trovati e visualizzati durante il rendering della pagina.