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:

  • Standard: il processo di distribuzione regolare.
  • Rapido (predefinito): riduce al minimo il tempo necessario per la distribuzione quando vengono distribuiti file per più impostazioni locali.
  • Compatto: riduce lo spazio occupato dai file di visualizzazione pubblicati.

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, consulta Distribuire file di visualizzazione statica.

Strategia rapida

La strategia rapida esegue le azioni riportate di seguito.

  1. Per ogni tema viene scelta una lingua arbitraria e vengono distribuiti tutti i file per questa lingua, come nella strategia standard.

  2. Per tutte le altre lingue del tema:

    1. I file che sostituiscono le impostazioni locali distribuite vengono definiti e distribuiti.
    2. Tutti gli altri file sono considerati simili per tutte le impostazioni locali e vengono copiati dalle impostazioni locali distribuite.
INFO
Da simile, si tratta di file indipendenti dalla lingua, dal tema o dall’area. Questi file possono includere CSS, immagini e font.

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 base sottodirectory.

Per ottenere il risultato più ottimizzato, vengono assegnati tre ambiti per una possibile somiglianza: area, tema e impostazioni internazionali. Il base Le sottodirectory vengono create per tutte le combinazioni di questi ambiti.

I file vengono distribuiti in queste sottodirectory in base ai seguenti modelli.

Pattern
Descrizione
<area>/<theme>/<locale>
File specifici per un'area, un tema e una lingua particolari
<area>/<theme>/default
File simili per tutte le lingue di un particolare tema di un'area particolare.
<area>/Magento/base/<locale>
File specifici per un'area e una lingua particolari, ma simili per tutti i temi.
<area>/Magento/base/default
File specifici per una particolare area, ma simili per tutti i temi e le impostazioni internazionali.
base/Magento/base/<locale>
File simili per tutte le aree e i temi, ma specifici per una particolare lingua.
base/Magento/base/default
Simile per tutte le aree, i temi e le impostazioni internazionali.

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 map.php il file è utilizzato da Magento\Framework\View\Asset\Repository per generare gli URL corretti.

Il requirejs-map.js viene utilizzato da baseUrlResolver plugin 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, utilizza \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.

recommendation-more-help
386822bd-e32c-40a8-81c2-ed90ad1e198c