Warum kann man bei Magento 2 nicht in den Standardmodus zurückkehren?
-
29-09-2020 - |
Frage
Daher habe ich während der Entwicklung eines Magento 2-Projekts mit dem folgenden Befehl in den Entwicklermodus gewechselt:
php bin/magento deploy:mode:set developer
Alles gut, ich habe diese Nachricht erhalten und die Website gut entwickelt:
Aktueller Anwendungsmodus:Entwickler.
Aus irgendwelchen Gründen wollte ich zurück in die default
modus nur um das Verhalten der Website in diesem Modus zu überprüfen.Keine besonderen Gründe um ehrlich zu sein, ich wollte nur wieder in diesen Modus wechseln.
Also habe ich den folgenden Befehl ausgeführt:
php bin/magento deploy:mode:set default
Aber ich habe diesen seltsamen Fehler ohne weitere Erklärungen bekommen:
Cannot switch into given mode "default"
Ich habe die folgende Datei überprüft, die die Moduseinstellungen behandelt Magento/Deploy/Console/Command/SetModeCommand.php
und hier ist, was ich gefunden habe:
switch($toMode) {
case State::MODE_DEVELOPER:
$modeController->enableDeveloperMode();
break;
case State::MODE_PRODUCTION:
if ($skipCompilation) {
$modeController->enableProductionModeMinimal();
} else {
$modeController->enableProductionMode();
}
break;
default:
throw new LocalizedException(__('Cannot switch into given mode "%1"', $toMode));
}
Wie komisch ist das denn, Magento 2 wird im Standardmodus ausgeliefert, aber Sie können nicht zu diesem bestimmten Modus zurückkehren.Was ist der Grund dafür?
Bearbeiten:für Interessierte habe ich am Ende ein Problem auf Github erstellt: https://github.com/magento/magento2/issues/4292
Lösung
Der Standardmodus ist weder hier noch dort.
Das Magento-Team möchte wirklich, dass Sie während der Entwicklung entweder den Produktionsmodus auf Ihrer Live-Site oder den Entwicklermodus verwenden.Der Grund, warum der Standardmodus existiert, besteht darin, etwas zu haben, das zumindest vernünftig ausgeführt werden kann, wenn es ohne weiteres Eingreifen direkt aus dem heruntergeladenen Code bereitgestellt wird.
Durch Laufen php bin/magento deploy:mode:set
sie haben sich als fähig identifiziert und benötigen den Standardmodus nicht.Da es keinen Grund gibt, in den Standardmodus zurückzukehren, hat Magento keine Möglichkeit dafür bereitgestellt.
Andere Tipps
Der Standardmodus ist nur für die Installation von Magento 2 vorgesehen.
Es sollte nicht für die Entwicklung oder Produktion verwendet werden.
Nach der Installation können Sie nur zwischen dev und prod wechseln.
Quelle:Alan Kent @MagentoImagine2016
Als Windows-Entwickler möchte Magento im Entwicklermodus symbolische Links zu den statischen Assets erstellen, verwendet jedoch den Linux-Befehl und nicht den Windows-Befehl.Dies führt zu vielen Fehlern in den JS- und CSS-Dateien.
Um in den Standardmodus zurückzukehren, öffnen Sie:-
app/etc/env.php
Und Veränderung:-
'MAGE_MODE' => 'developer',
Zurück zu:-
'MAGE_MODE' => 'default',
Und stellen Sie statische Dateien erneut bereit.
Ich bin mit dem gleichen Problem gelaufen, habe es aber geändert env.php
manuell funktioniert.