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:

  • Standard: den vanliga distributionsprocessen.
  • Snabb (standard): minimerar den tid som krävs för distribution när filer för fler än en språkinställning distribueras.
  • Kompakt: minimerar utrymmet som tas av de publicerade vyfilerna.

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:

  1. 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.

  2. För alla andra språkområden i temat:

    1. Filer som åsidosätter det distribuerade språket definieras och distribueras.
    2. Alla andra filer betraktas som lika för alla språkområden och kopieras från det distribuerade språkområdet.
INFO
Med liknande menar vi filer som är oberoende av språkområdet, temat eller området. Dessa filer kan innehålla CSS, bilder och teckensnitt.

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.

Mönster
Beskrivning
<area>/<theme>/<locale>
Filer som är specifika för ett visst område, tema och språk
<area>/<theme>/default
Filer som liknar alla språkområden i ett visst tema i ett visst område.
<area>/Magento/base/<locale>
Filer som är specifika för ett visst område och en viss språkinställning, men liknande för alla teman.
<area>/Magento/base/default
Filer som är specifika för ett visst område, men liknande för alla teman och språkområden.
base/Magento/base/<locale>
Filer som liknar alla områden och teman, men som är specifika för en viss språkinställning.
base/Magento/base/default
Liknande för alla områden, teman och språkområden.

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.

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