Strategien zur Bereitstellung statischer Inhalte
- Themen:
- Cloud
- Build
- Bereitstellung
Erstellt für:
- Admin
- Entwickler
Die Bereitstellung statischer Inhalte (Static Content Deployment, SCD) hat einen erheblichen Einfluss auf den Prozess der Speicherbereitstellung, der davon abhängt, wie viel Inhalt generiert werden soll (z. B. Bilder, Skripte, CSS, Videos, Themen, Gebietsschemata und Web-Seiten) und wann der Inhalt generiert wird. Beispielsweise generiert die Standardstrategie statische Inhalte während der Bereitstellungsphase wenn sich die Site im Wartungsmodus befindet. Diese Bereitstellungsstrategie benötigt jedoch Zeit, um die Inhalte direkt in das bereitgestellte pub/static
-Verzeichnis zu schreiben. Sie haben verschiedene Optionen oder Strategien, um die Bereitstellungszeit je nach Bedarf zu verbessern.
JavaScript- und HTML-Inhalte optimieren
Sie können Bundling und Minimierung verwenden, um optimierte JavaScript- und HTML-Inhalte während der Bereitstellung statischer Inhalte zu erstellen.
Inhalt minimieren
Sie können die Ladezeit der SCD während des Bereitstellungsprozesses verbessern, wenn Sie die statischen Ansichtsdateien im var/view_preprocessed
-Verzeichnis überspringen und auf Anfrage minimierte HTML generieren. Sie können dies aktivieren, indem Sie die globale Umgebungsvariable SKIP_HTML_MINIFICATION auf true
in der .magento.env.yaml
-Datei festlegen.
ece-tools
-Paketversion 2002.0.13 wird der Standardwert für die Variable SKIP_HTML_MINIFICATION auf true
festgelegt.Sie können mehr Bereitstellungszeit und Speicherplatz sparen, indem Sie die Anzahl der unnötigen Design-Dateien reduzieren. Sie können beispielsweise das magento/backend
Design auf Englisch und ein benutzerdefiniertes Design in anderen Sprachen bereitstellen. Sie können diese Designeinstellungen mit der Umgebungsvariablen SCD_MATRIX konfigurieren.
Auswählen einer Bereitstellungsstrategie
Die Bereitstellungsstrategien unterscheiden sich je nachdem, ob Sie statische Inhalte während der Build-Phase, der Bereitstellungs-Phase oder On-Demand- generieren. Wie im folgenden Diagramm dargestellt, ist das Generieren statischer Inhalte während der Bereitstellungsphase die am wenigsten optimale Wahl. Selbst bei minimiertem HTML muss jede Inhaltsdatei in das bereitgestellte ~/pub/static
-Verzeichnis kopiert werden, was lange dauern kann. Die Erstellung statischer Inhalte nach Bedarf scheint die optimale Wahl zu sein. Wenn die Inhaltsdatei jedoch zum Zeitpunkt der Anforderung nicht im Cache vorhanden ist, wird sie generiert, was dem Benutzererlebnis eine Ladezeit hinzufügt. Daher ist die Generierung statischer Inhalte während der Build-Phase die optimalste.
Festlegen der SCD beim Build
Das Generieren von statischem Inhalt während der Build-Phase mit minimiertem HTML ist die optimale Konfiguration für Bereitstellungen ohne Ausfallzeiten,auch als Idealzustand“. Anstatt Dateien auf ein gemountetes Laufwerk zu kopieren, wird ein Symlink aus dem ./init/pub/static
Verzeichnis erstellt.
Zum Generieren statischer Inhalte ist Zugriff auf Designs und Gebietsschemata erforderlich. Adobe Commerce speichert Designs im Dateisystem, auf das während der Build-Phase zugegriffen werden kann. Adobe Commerce speichert jedoch Gebietsschemata in der Datenbank. Die Datenbank während Erstellungsphase nicht verfügbar. Um den statischen Inhalt während der Build-Phase zu generieren, müssen Sie den config:dump
-Befehl im ece-tools
-Paket verwenden, um Gebietsschemata in das Dateisystem zu verschieben. Es liest die Gebietsschemata und speichert sie in der app/etc/config.php
.
So konfigurieren Sie Ihr Projekt für die Generierung von SCD beim Build:
-
Wechseln Sie auf Ihrer lokalen Workstation in Ihr Projektverzeichnis.
-
Verwenden Sie SSH, um sich bei der Remote-Umgebung anzumelden.
magento-cloud ssh
-
Verschieben Sie Gebietsschemata in das Dateisystem und aktualisieren Sie dann die
config.php
Datei. -
Die
.magento.env.yaml
-Konfigurationsdatei sollte die folgenden Werte enthalten:- SKIP_HTML_MINIFICATION ist
true
- SKIP_SCD beim Build-Schritt ist
false
- SCD_STRATEGY ist
compact
- SKIP_HTML_MINIFICATION ist
-
Überprüfen Sie die Konfiguration Hooks „Nach der Bereitstellung in der
.magento.app.yaml
. -
Überprüfen Sie Ihre Einstellungen, indem Sie den Smart-Assistenten für den idealen Status ausführen.
php ./vendor/bin/ece-tools wizard:ideal-state
SCD bei Bedarf einstellen
Die Erstellung von SCD on demand ist optimal für einen Entwicklungs-Workflow in der Integrationsumgebung. Dadurch wird die Bereitstellungszeit verkürzt, sodass Sie Ihre Implementierungen schnell überprüfen und Integrationstests ausführen können. Aktivieren Sie Umgebungsvariable SCD_ON_DEMAND im globalen Schritt der .magento.env.yaml
. Die Variable SCD_ON_DEMAND überschreibt alle anderen Konfigurationen im Zusammenhang mit SCD und löscht vorhandene Inhalte aus dem ~/pub/static
.
Bei Verwendung der SCD-On-Demand-Strategie ist es hilfreich, den Cache vorab mit Seiten zu laden, die Sie erwarten, z. B. die -Startseite. Fügen Sie Ihre Liste der erwarteten Seiten in Umgebungsvariablen WARM_UP_PAGES in der Phase nach der Bereitstellung der .magento.env.yaml
hinzu.
SCD wird übersprungen
Manchmal können Sie die Generierung statischer Inhalte vollständig überspringen. Sie können die Umgebungsvariable SKIP_SCD im globalen Schritt so einstellen, dass andere Konfigurationen im Zusammenhang mit SCD ignoriert werden. Vorhandene Inhalte im ~/pub/static
sind davon nicht betroffen.