لماذا لا يمكن العودة إلى الوضع الافتراضي في Magento 2؟
-
29-09-2020 - |
سؤال
لذلك قمت بالتبديل إلى وضع المطور أثناء التطوير في مشروع Magento 2 باستخدام الأمر التالي:
php bin/magento deploy:mode:set developer
حسنًا، وصلتني هذه الرسالة وقمت بتطوير الموقع بشكل جيد:
وضع التطبيق الحالي:مطور.
لبعض الأسباب، أردت العودة إلى default
الوضع فقط للتحقق من سلوك موقع الويب في هذا الوضع.لا توجد أسباب محددة لأكون صادقًا، أردت فقط العودة إلى هذا الوضع.
لذلك قمت بتشغيل الأمر التالي:
php bin/magento deploy:mode:set default
لكنني حصلت على هذا الخطأ الغريب دون مزيد من التوضيحات:
Cannot switch into given mode "default"
لقد قمت بفحص الملف التالي الذي يتعامل مع إعدادات الوضع Magento/Deploy/Console/Command/SetModeCommand.php
وهذا ما وجدته:
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));
}
كم هو غريب ذلك، يتم شحن Magento 2 في الوضع الافتراضي ولكن لا يمكنك العودة إلى هذا الوضع المحدد.ما هو السبب وراء هذا؟
يحرر:بالنسبة للمهتمين، انتهى بي الأمر إلى إنشاء مشكلة على جيثب: https://github.com/magento/magento2/issues/4292
المحلول
الوضع الافتراضي ليس هنا ولا هناك.
يريد فريق Magento حقًا استخدام وضع الإنتاج على موقعك المباشر أو وضع المطور أثناء التطوير.السبب وراء وجود الوضع الافتراضي هو وجود شيء يمكن تشغيله بشكل معقول على الأقل عند نشره مباشرةً من التعليمات البرمجية التي تم تنزيلها دون أي تدخل إضافي.
عن طريق الركض php bin/magento deploy:mode:set
لقد حددت نفسك على أنك قادر ولا تحتاج إلى الوضع الافتراضي.نظرًا لعدم وجود سبب للحاجة إلى العودة إلى الوضع الافتراضي، لم توفر لك Magento طريقة للقيام بذلك.
نصائح أخرى
الوضع الافتراضي موجود فقط لتثبيت Magento 2.
لا ينبغي أن تستخدم للتطوير أو الإنتاج.
بعد التثبيت، يمكنك فقط التبديل بين dev وprod.
مصدر:آلان كينت @MagentoImagine2016
بصفته مطور Windows، في وضع المطور، يريد Magento إنشاء روابط رمزية للأصول الثابتة، ولكنه يستخدم أمر Linux وليس أمر windows.يؤدي هذا إلى حدوث الكثير من الأخطاء في ملفات js وcss.
للعودة إلى الوضع الافتراضي، افتح: -
app/etc/env.php
والتغيير:-
'MAGE_MODE' => 'developer',
ارجع الى:-
'MAGE_MODE' => 'default',
وأعد نشر الملفات الثابتة مرة أخرى.
لقد واجهت نفس المشكلة ولكن تم تغييرها env.php
يعمل يدويا.