Bereitstellen von statischen Ansichtsdateien

WARNING
Alle Magento-CLI-Befehle müssen vom Dateisysteminhaber ausgeführt werden.

Mit dem Bereitstellungsbefehl für statische Ansichtsdateien können Sie statische Dateien in das Commerce-Dateisystem schreiben, wenn die Commerce-Software für den Produktionsmodus festgelegt ist.

Der Begriff statische Ansichtsdatei bezieht sich auf Folgendes:

  • "Statisch"bedeutet, dass sie für eine Site zwischengespeichert werden kann (d. h., die Datei wird nicht dynamisch generiert). Beispiele sind Bilder und CSS, die aus LESS generiert wurden.
  • "Ansicht"bezieht sich auf die Präsentationsschicht (aus MVC).

Statische Ansichtsdateien befinden sich im Verzeichnis <magento_root>/pub/static und einige werden auch im Verzeichnis <magento_root>/var/view_preprocessed zwischengespeichert.

Die Bereitstellung von statischen Ansichtsdateien wird wie folgt von den Anwendungsmodi beeinflusst:

  • Die Modi Standard und Entwickler: Commerce generiert sie bei Bedarf, der Rest wird jedoch in einer Datei zwischengespeichert, um den Zugriff zu beschleunigen.
  • Modus Produktion : Statische Dateien werden nicht generiert oder zwischengespeichert.

Sie müssen statische Ansichtsdateien manuell in das Commerce-Dateisystem schreiben, indem Sie den in diesem Thema beschriebenen Befehl verwenden. Danach können Sie die Berechtigungen einschränken, um Ihre Sicherheitslücken zu begrenzen und ein versehentliches oder bösartiges Überschreiben von Dateien zu verhindern.

WARNING
Nur Entwicklermodus: Wenn Sie ein neues Modul installieren oder aktivieren, werden möglicherweise neue JavaScript, CSS, Layouts usw. geladen. Um Probleme mit statischen Dateien zu vermeiden, müssen Sie die alten Dateien bereinigen, um sicherzustellen, dass Sie alle Änderungen für das neue Modul erhalten. Sie können generierte statische Ansichtsdateien auf verschiedene Arten bereinigen. Weitere Informationen finden Sie unter Cache-Thema für statische Dateien bereinigen .

Bereitstellen von statischen Ansichtsdateien:

  1. Melden Sie sich beim Commerce-Server als an oder wechseln Sie zum Dateisysteminhaber.

  2. Löschen Sie den Inhalt von <magento_root>/pub/static, mit Ausnahme der Datei .htaccess. Löschen Sie diese Datei nicht.

  3. Führen Sie das Bereitstellungs-Tool für statische Ansichtsdateien <magento_root>/bin/magento setup:static-content:deploy aus.

    note info
    INFO
    Wenn Sie das Zusammenführen von statischen Ansichtsdateien im Admin aktivieren, muss das Ordnersystem pub/static schreibbar sein.

    Befehlsoptionen:

    code language-bash
    bin/magento setup:static-content:deploy [<languages>] [-t|--theme[="<theme>"]] [--exclude-theme[="<theme>"]] [-l|--language[="<language>"]] [--exclude-language[="<language>"]] [-a|--area[="<area>"]] [--exclude-area[="<area>"]] [-j|--jobs[="<number>"]]  [--no-javascript] [--no-css] [--no-less] [--no-images] [--no-fonts] [--no-html] [--no-misc] [--no-html-minify] [--no-parent] [-f|--force]
    

In der folgenden Tabelle werden die Parameter und Werte dieses Befehls erläutert.

Option
Beschreibung
Erforderlich?
<languages>
Durch Leerzeichen getrennte Liste von ISO-639 Sprachcodes, für die statische Ansichtsdateien ausgegeben werden sollen. (Der Standardwert ist en_US.)
Suchen Sie die Liste durch Ausführen: bin/magento info:language:list
Nein
--language (-l)
Generieren Sie Dateien nur für die angegebenen Sprachen. Standardmäßig werden Dateien für alle ISO-639-Sprachcodes generiert, ohne dass eine Option angegeben ist. Sie können den Namen eines Sprachcodes gleichzeitig angeben. Der Standardwert ist all.
Beispiel: --language en_US --language es_ES
Nein
--exclude-language
Generieren Sie Dateien für die angegebenen Sprachcodes. Standardmäßig wird ohne Angabe einer Option nichts ausgeschlossen. Sie können den Namen eines Sprachcodes oder eine kommagetrennte Liste von Sprachcodes angeben. Der Standardwert ist none.
Nein
--theme <theme>
Designs, für die statische Inhalte bereitgestellt werden sollen. Der Standardwert ist all.
Beispiel: --theme Magento/blank --theme Magento/luma
Nein
--exclude-theme <theme>
Themen, die bei der Bereitstellung statischer Inhalte ausgeschlossen werden sollen. Der Standardwert ist none.
Beispiel: --exclude-theme Magento/blank
Nein
--area (-a)
Generieren Sie Dateien nur für die angegebenen Bereiche. Standardmäßig werden Dateien für alle Bereiche generiert, ohne dass eine Option angegeben ist. Gültige Werte sind adminhtml und frontend. Der Standardwert ist all.
Beispiel: --area adminhtml
Nein
--exclude-area
Generieren Sie keine Dateien für die angegebenen Bereiche. Standardmäßig wird ohne Angabe einer Option nichts ausgeschlossen. Der Standardwert ist none.
Nein
--jobs (-j)
Aktivieren Sie die parallele Verarbeitung mit der angegebenen Anzahl von Aufträgen. Der Standardwert ist 0 (nicht in parallelen Prozessen ausgeführt). Der Standardwert ist 0.
Nein
--symlink-locale
Erstellen Sie Symlinks für die Dateien dieser Gebietsschemas, die zur Bereitstellung übergeben werden, aber keine Anpassungen aufweisen.
Nein
--content-version=CONTENT-VERSION
Benutzerdefinierte Version von statischem Inhalt kann verwendet werden, wenn die Bereitstellung auf mehreren Knoten ausgeführt wird, um sicherzustellen, dass die statische Inhaltsversion identisch ist und die Zwischenspeicherung ordnungsgemäß funktioniert.
Nein
--no-javascript
JavaScript-Dateien nicht bereitstellen
Nein
--no-css
Stellen Sie keine CSS-Dateien bereit.
Nein
--no-less
Stellen Sie keine LESS-Dateien bereit.
Nein
--no-images
Stellen Sie keine Bilder bereit.
Nein
--no-fonts
Stellen Sie keine Schriftartdateien bereit.
Nein
--no-html
Stellen Sie keine HTML-Dateien bereit.
Nein
--no-misc
Stellen Sie keine anderen Dateitypen bereit: MD, JBF, CSV, JSON, TXT, HTC, SWF
Nein
--no-html-minify
Minimieren Sie keine HTML-Dateien.
Nein
-s <quick|standard|compact>

Definieren Sie die Implementierungsstrategie. Verwenden Sie diese Optionen nur, wenn Sie mehrere lokale Optionen haben.

  • Verwenden Sie die Schnellstrategie, um die Bereitstellungszeit zu minimieren. Dies ist die standardmäßige Befehlsoption, falls nicht anders angegeben.
  • Verwenden Sie die Standardstrategie, um alle statischen Ansichtsdateien für alle Pakete bereitzustellen.
  • Verwenden Sie die Compact Strategy, um Speicherplatz auf dem Server zu sparen.
Nein
--no-parent
Generieren Sie keine Dateien für die übergeordneten Designs des aktuellen Designs. Es wird dringend empfohlen, dieses Flag zu verwenden, wenn Sie nicht explizit das übergeordnete Design des aktuellen Designs verwenden, das Sie bereitstellen möchten. Dies erhöht die Geschwindigkeit des Prozesses erheblich. Dieses Flag ist in Commerce 2.4.2 verfügbar.
Nein
--force (-f)
Bereitstellen von Dateien in einem beliebigen Modus. (Standardmäßig kann das Werkzeug zur Bereitstellung statischer Inhalte nur im Produktionsmodus ausgeführt werden. Verwenden Sie diese Option, um sie im Standard- oder Entwicklermodus auszuführen.
Nein
INFO
Wenn Sie Werte sowohl für <languages> als auch für --language angeben, hat <languages> Vorrang.

Beispiele

Im Folgenden finden Sie einige Beispielbefehle.

Ausschließen eines Designs und HTML-Minimierung

Der folgende Befehl stellt statische Inhalte für die US-amerikanische Sprache (en_US) bereit, schließt das mit Commerce bereitgestellte Luma-Design aus und minimiert keine HTML-Dateien.

bin/magento setup:static-content:deploy en_US --exclude-theme Magento/luma --no-html-minify

Beispielausgabe:

Requested languages: en_US
Requested areas: frontend, adminhtml
Requested themes: Magento/blank, Magento/backend
=== frontend -> Magento/blank -> en_US ===
=== adminhtml -> Magento/backend -> en_US ===
...........................................................
... more ...
Successful: 2055 files; errors: 0
---

New version of deployed files: 1466710645
............
Successful: 1993 files; errors: 0
---

Mit dem folgenden Befehl wird nur JavaScript mit 4 Aufträgen mit einer standardmäßigen Bereitstellungsstrategie bereitgestellt:

bin/magento setup:static-content:deploy -s standard --no-misc --no-html --no-fonts --no-images --no-less --no-css -j 4

Der folgende Befehl stellt nur CSS und LESS mit 3 Aufträgen und einer schnellen Bereitstellungsstrategie bereit:

bin/magento setup:static-content:deploy -s quick --no-misc --no-html --no-fonts --no-images --no-javascript -j 3

Erstellen von statischen Ansichtsdateien für ein Design und einen Bereich

Der folgende Befehl generiert statische Ansichtsdateien für alle Sprachen, nur für den Frontend-Bereich, nur für das Commerce Luma-Design, ohne Schriftarten zu generieren:

bin/magento setup:static-content:deploy --area frontend --no-fonts --theme Magento/luma

Beispielausgabe:

Requested languages: en_US
Requested areas: frontend
Requested themes: Magento/luma
=== frontend -> Magento/luma -> en_US ===
...........................................................
... more ...
........................................................................
Successful: 2092 files; errors: 0
---

New version of deployed files: 1466711110

Bereitstellen von statischen Ansichtsdateien ohne Installation von Commerce

Möglicherweise möchten Sie den Bereitstellungsprozess in einer separaten, produktionsfremden Umgebung ausführen, um Build-Prozesse auf sensiblen Produktionsmaschinen zu vermeiden.

Gehen Sie dazu wie folgt vor:

  1. Führen Sie bin/magento app:config:dump aus, um die Konfiguration aus Ihrem Produktionssystem zu exportieren.
  2. Kopieren Sie die exportierten Dateien in die Nicht-Produktions-Codebasis.
  3. Statische Ansichtsdateien bereitstellen: bin/magento setup:static-content:deploy

Fehlerbehebung für das Bereitstellungswerkzeug für statische Ansichtsdateien

Installieren Sie zuerst die Commerce-Software. Andernfalls können Sie das Bereitstellungswerkzeug für statische Ansichtsdateien nicht ausführen.

Symptom: Der folgende Fehler wird angezeigt, wenn Sie das Bereitstellungswerkzeug für statische Ansichtsdateien ausführen:

ERROR: You need to install the Commerce application before running this utility.

Lösung:

Führen Sie die folgenden Schritte aus:

  1. Installieren Sie die Commerce-Software mithilfe der Befehlszeile.
  2. Melden Sie sich beim Anwendungsserver als Eigentümer des Dateisystems an oder wechseln Sie zum Dateisysteminhaber.
  3. Löschen Sie den Inhalt des Verzeichnisses "<app_root>/pub/static", mit Ausnahme der Datei ".htaccess". Löschen Sie diese Datei nicht.
  4. Statische Ansichtsdateien bereitstellen: bin/magento setup:static-content:deploy

Tipp für Entwickler, die das Werkzeug zur Bereitstellung statischer Inhalte anpassen

Verwenden Sie beim Erstellen einer benutzerdefinierten Implementierung des Tools für die Bereitstellung statischer Inhalte nur das Schreiben von Atomdateien für Dateien, die auf dem Client verfügbar sein sollten. Wenn Sie nicht atomare Dateischreibungen verwenden, werden diese Dateien möglicherweise auf den Client mit partiellem Inhalt geladen.

Eine der Optionen, um es atomisch zu gestalten, besteht darin, in Dateien zu schreiben, die in einem temporären Verzeichnis gespeichert sind, und sie nach dem Schreiben in das Zielverzeichnis zu kopieren oder in dieses zu verschieben (von wo sie auf den Client geladen werden). Weitere Informationen zum Schreiben in Dateien finden Sie unter php fwrite.

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