Magento 2: Was ist eine "statische Ansichtsdatei"?

21

Wenn ich die Verwendung module:enableoder module:disableBefehl aktivieren oder ein Modul zu deaktivieren,

php bin/magento module:enable Pulsestorm_TutorialObjectManager1
php bin/magento module:enable Pulsestorm_TutorialObjectManager1

Die Ausgabe enthält den folgenden Inhalt

Warnung: Generierte statische Ansichtsdateien wurden nicht gelöscht. Sie können sie mit der Option --clear-static-content löschen. Wenn statische Anzeigedateien nicht gelöscht werden, kann dies zu Anzeigeproblemen in Admin und Storefront führen.

Was genau ist eine statisch erzeugte Ansichtsdatei?

Wo leben diese Dateien?

Wenn ich die --clear-static-contentOption einbinde, lösche ich nur Dateien, oder werden dadurch auch andere Dinge im System zurückgesetzt?

Alan Storm
quelle

Antworten:

12

Es scheint nur um Dateien zu entfernen (und einige Ausgaben zu drucken). Mit diesem Flag enthält der Stack:

\Magento\Setup\Console\Command\AbstractModuleCommand::cleanup
\Magento\Framework\App\State\CleanupFiles::clearMaterializedViewFiles

welches leert diese Verzeichnisse (siehe \ Magento \ Framework \ App \ Filesystem \ DirectoryList):

DirectoryList::STATIC_VIEW == 'static'
DirectoryList::VAR_DIR == 'var'
DirectoryList::TMP_MATERIALIZATION_DIR == 'view_preprocessed'

Wenn ich nach Verwendungen von suche DirectoryList::STATIC_VIEW, sehe ich viele Ausgaben, aber vor allem hat das meiste mit der Bereitstellung und Bereinigung von CSS und zusammengeführtem JS zu tun. Ohne weiter zu graben, kann man mit Sicherheit sagen, dass eine "statische Ansicht" eine nachbearbeitete statische Asset-Datei wie CSS und JS ist. Ich bin gespannt, wie Entwickler diese Funktion erweitern und modifizieren.

Kojiro
quelle
12

"Ansicht" bezieht sich auf die Präsentationsebene (von MVC).

"Statisch" bedeutet, dass es für eine Site zwischengespeichert werden kann (es ist nicht dynamisch). ZB aus WENIGER Dateien generiertes CSS.

In der Produktion können wir die Dateien vorberechnen. Im Entwicklermodus können wir bei Bedarf generieren, der Rest wird jedoch aus Gründen der Geschwindigkeit in einer Datei zwischengespeichert. Wenn Sie also ein neues Modul laden, lädt es möglicherweise neue JS-, CSS-, Layout-Dateien usw. Sie müssen also die alten Dateien leeren, um sicherzustellen, dass Sie alle Änderungen für das neue Modul erhalten.

Beim Löschen von statischen Inhalten werden momentan Dateien gelöscht. Eines Tages könnte es mehr bewirken, aber ich kenne noch keine Pläne.

Sie leben in pub / static - aber es gibt auch zwischengespeicherte Dateien unter / var.

Alan Kent
quelle
Vielen Dank. Ich werde devdocs.magento.com/guides/v1.0/config-guide/cli/…
Steve Johnson