Bereitstellen von statischen Ansichtsdateien
Mit dem Bereitstellungsbefehl für statische Ansichtsdateien können Sie statische Dateien in das Commerce-Dateisystem schreiben, wenn die Commerce-Software für Produktionsmodus.
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 <magento_root>/pub/static
und einige werden im <magento_root>/var/view_preprocessed
-Verzeichnis.
Die Bereitstellung von statischen Ansichtsdateien wird wie folgt von den Anwendungsmodi beeinflusst:
- Standard und Entwickler Modi: Commerce erstellt sie nach Bedarf, der Rest wird jedoch in einer Datei zwischengespeichert, um den Zugriff zu beschleunigen.
- Produktion mode: Statische Dateien sind not generiert oder zwischengespeichert.
Sie müssen statische Ansichtsdateien manuell in das Commerce-Dateisystem schreiben, indem Sie den in diesem Thema besprochenen 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.
So stellen Sie statische Ansichtsdateien bereit:
-
Melden Sie sich beim Commerce-Server als oder an. Wechseln zum Dateisysteminhaber.
-
Löschen Sie den Inhalt von
<magento_root>/pub/static
, mit Ausnahme der.htaccess
-Datei. Löschen Sie diese Datei nicht. -
Implementierungstool für statische Ansichtsdateien ausführen
<magento_root>/bin/magento setup:static-content:deploy
.note info INFO Wenn Sie die Zusammenführung von statischen Ansichtsdateien in der Admin-Konsole aktivieren, wird die pub/static
Verzeichnissystem muss 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.
<languages>
en_US
.Suchen Sie die Liste, indem Sie Folgendes ausführen:
bin/magento info:language:list
--language (-l)
Beispiel:
--language en_US --language es_ES
--exclude-language
--theme <theme>
Beispiel:
--theme Magento/blank --theme Magento/luma
--exclude-theme <theme>
Beispiel:
--exclude-theme Magento/blank
--area (-a)
adminhtml
und frontend
. Der Standardwert ist all.Beispiel:
--area adminhtml
--exclude-area
--jobs (-j)
--symlink-locale
--content-version=CONTENT-VERSION
--no-javascript
--no-css
--no-less
--no-images
--no-fonts
--no-html
--no-misc
--no-html-minify
-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 kompakte Strategie um Speicherplatz auf dem Server zu sparen.
--no-parent
--force (-f)
<languages>
und --language
, <languages>
hat 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
), 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
---
Der folgende Befehl stellt nur JavaScript mit 4 Aufträgen und einer standardmäßigen Bereitstellungsstrategie bereit:
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:
- Ausführen
bin/magento app:config:dump
, um die Konfiguration aus Ihrem Produktionssystem zu exportieren. - Kopieren Sie die exportierten Dateien in die Nicht-Produktions-Codebasis.
- 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:
- Installieren Sie die Commerce-Software mit dem Befehlszeile.
- Melden Sie sich beim Anwendungsserver als Switch zu, der Dateisysteminhaber.
- Löschen Sie den Inhalt von
<app_root>/pub/static
Verzeichnis, mit Ausnahme der.htaccess
-Datei. Löschen Sie diese Datei nicht. - 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.