Hata mesajı nedir:
Gerekli parametre 'theme_dir' iletilmedi
Magento 2 ile ilgili mi? Ve bu sorun nasıl çözülebilir?
Hata mesajı nedir:
Gerekli parametre 'theme_dir' iletilmedi
Magento 2 ile ilgili mi? Ve bu sorun nasıl çözülebilir?
Yanıtlar:
Sadece temayı doğrudan kaldırıyorsanız (Magento tarzında değil).
Ardından bu adımları izleyin.
İçeriği şuradan silin app/design/frontend/<Vendor>
(önce yedeklediğinizden emin olun).
Klasörün tüm içeriğini sil var/view_preprocessed
& pub/static/frontend
.
Senin gidin theme
masa ve sizin oluşturduğunuz tema için girişi silin.
Daha sonra...
Senin gidin core_config_data
masa ve aramak theme
ve gibi yol kayıtlarını alacak design/theme/theme_id
içinde varsayılan tema kimliği değiştirin.
Önbelleğini temizle php bin/magento cache:flush
Bundan sonra hala herhangi bir sorunla karşılaşırsanız bana bildirin.
theme
-Table düzeltmek yaptım , ancak core_config_data
değeri unuttum .
setup:static-content:deploy
yönetici çalıştırdıktan sonra UI'ye geri döndü.
pub/static/.htaccess
orada değildi. teşekkürler
Bu hata mesajı, dosya sisteminde (daha fazla) yapılandırılmayan bir temanız olduğunu gösterir.
Bunun yerine geçerli bir tema seçerek kolayca düzeltilebilir. Git İçerik -> Yapılandırma , kapsam (küresel, web sitesi, store_view) seçin ve temayı değiştirin. Bunu yaptıktan sonra onu İçerik -> Temalar'dan da kaldırmalısınız .
Benim durumumda, alt dizini Satıcı dizininden sildim. Ancak DB girişi hâlâ theme
masada duruyordu. Bu nedenle, theme
tabloya gidin ve silinen temayı işaret eden kaydı silin.
composer remove vendor/theme
?
rm -rf vendor/theme
theme
Tablo girişinin ve Girişin magento\app\design\frontend\<Vendor>
aynı olduğundan emin olun .
Değilse bu soruna neden olur.
Gereksiz temayı Yönetici -> İçerik -> Tasarım -> Temalar yoluyla kaldırın . Silin. Böylece DB Girişini de kaldıracak.
Yalnızca klasörü kaldırırsanız çalışmaz
Bu sorun, öykünmüş bir durumda, örneğin bir CLI komutunda da ortaya çıkabilir. Wrapping komutu öykünmüş bir durumda çalıştığından, CLI'da e-posta gönderemediğim bir durum vardı:
$this->appState->emulateAreaCode(AppArea::AREA_GLOBAL, function() {
// In this section the email was sent
});
Yukarıdaki örnekte, e-posta şablon dizinini belirlemeye çalıştığında global/Magento/backend
, var olmayan bir eşleme yapacaktır . Bunu düzeltmek için, kurucuma el ile eklemek zorundaydım:
/** @var \Magento\Framework\Component\ComponentRegistrarInterface $componentRegistrar */
// Make the admin theme global accessible for sending e-mails:
\Magento\Framework\Component\ComponentRegistrar::register(
'theme',
'global/Magento/backend',
$componentRegistrar->getPath('theme', 'adminhtml/Magento/backend')
);
Bu düzeltmeden sonra sorun çözüldü ve e-postayı gönderebilirdim.
Güncelleme:
CLI kullanarak posta göndermeye gelince, öykünmeyi kullanmak daha uygun bir yaklaşım olacaktır. Örneğin:
/** @var Magento\Framework\App\State $state */
$state->emulateAreaCode(
'frontend',
[$this->accountManagement, 'initiatePasswordReset'],
[
$customer->getEmail(),
AccountManagement::EMAIL_REMINDER,
$customer->getWebsiteId()
]
);
Bu şekilde kirli küçük hack'lerin olmaz.
@hakre doğru. Ben de aynı hatayı aldım Required parameter 'theme_dir' was not passed
. Aşağıda, hataya neden olmak için ne yaptığımı açıklıyorum:
App / design / frontend / MyVendorTheme2 / myThemeName2 dizininde bir tema oluşturdum ve sonra Magento 2 Yönetici tarayıcısında ( Mağazalar> Yapılandırma> TEMA AYARLARI> GENEL> Tasarım> Tasarım Teması ) " MyVendorTheme2 - myThemeName2 " temasını seçerek yapılandırdım. . Ama ardından "taşınmaya karar verdi myThemeName2 farklı (mevcut) satıcı klasör" altında olmak (benim yeni tema içerir) "dizini MyVendorTheme1 " app / tasarım / önyüz / MyVendorTheme1 / myThemeName2 ve "kaldırmasıyla MyVendorTheme2 " klasörü nerede o önceydi. Ben (varlıkları derlemeye devam yani , ,grunt clean
grunt exec:myThemeName2
grunt less:myThemeName2
) ve sonra tarayıcımı tema alt etki alanımda açtım (örn. http: // myvirtualhostdomain: myport / myvendortheme1_mythemename2_magento2_quickstart / ).
Başlangıçta belirsiz bir hatayla karşılaştım:
There has been an error processing your request
Exception printing is disabled by default for security reasons.
Error log record number:
Ben yeniden adlandırarak hata raporlama etkin pub/errors/local.xml.sample
etmek local.xml
ve sayfayı yenilenir. Daha sonra hata ile sunuldu Required parameter 'theme_dir' was not passed
.
Önceki ve şimdi geçersiz tasarım temamı seçtiğim Magento 2 Yönetici tarayıcıma ( Mağazalar> Konfigürasyon> TEMA AYARLARI> GENEL> Tasarım> Tasarım Teması ) tekrar girerek hatayı çözdüm , bu yüzden doğru olanı seçtim.
1 - Yönetici panelindeki temaları tanımlamak için aşağıdaki komutu kullanın.
n98-magerun2 dev:theme:list
2 - Yüklü temaları tanımlamak için komutu çalıştırın:
ls -lha app/design/frontend/MyThemePackage/
3- Var olmayan temayı oluşturmak için aşağıdaki komutları çalıştırın:
n98-magerun2 deploy:mode:set developer
n98-magerun2 dev:console
make:theme frontend MyThemePackage MyThemeName
Hiçbir şey işe yaramadıysa, kategoriler bölümünü kontrol etmeyi unutmayın. Orada da bir tasarım ayarları var. Doğru tasarım temasının atandığından emin olun. Benim durumumda, sadece bazı kategorilerde hata alıyorum.
Kullanılmayan temayı, aşağıdaki sorguyu yürüterek doğrudan DB'den kaldırabilirsiniz:
delete from theme where theme_path in ('unusedtheme');
kullanılmayan tema kullanılmayan temadır ve önbelleğinizi temizledikten sonra
Bazı durumlarda özel temayı uygun olmayan şekilde silerseniz, bu hatayla da karşılaşırsınız. Bu durumda:
1) you have to delete that entry/row from 'theme' table.
2) set value 1 (1 for blank theme 2 for Luma what ever you want to set) against 'design/theme/theme_id'
Gitmiş olan sayfa hatasını yenile.
Sorunu çözdüm. Benim durumumda sorun Magento2 değil, zaman önce aşağıdaki gibi yaptığım yanlış bir işlemdi: App / design / frontend / MyFolder / MyTheme'de göreceli yolu yaratan bir tema oluşturdum ve Magento 2 çevrimiçi belgelerinde açıklandığı gibi kaydettim. Sonra temayı iptal etmeye karar verdim ve onun yerine uygun komutu kullanmaya karar verdim: bin / magento teması: remove frontend / MyFolder / MyTheme Doğrudan klasörleri sildim. Veri tabanı gerekli bilgilerle güncellenmediğinden bu iyi bir işlem değildir. Çözüm: phpmyadmin olarak bir veritabanı editörüyle silinmiş klasörlere karşılık gelen "Tema" tablosundaki kaydı silin. Umarım bu yardımcı olacak!
Bu sorunun çok eski olduğunu biliyorum, ancak bugün karşılaştığım ve sorunumun ne olduğunu çabucak öğrendim, cevabımı benim gibi Magento ile çalışmak için PhpStorm'u kullanan herkes için bir hatırlatma olarak göndermeye karar verdim: dalları değiştirirken dosyalarınızı kontrol etmeyi unutmayın.
Benim durumumda, üzerinde çalıştığım şube gerekli tema dosyalarına sahip değildi (tema dalından ana dalına geçtiğimde PhpStorm tarafından saklandılar) çünkü henüz birleştirilmiş olmadılar. hata.
Umarım bu birine yardımcı olabilir.
Web sitesinde kullanılmayan tüm geçici dosyaları sil ve aynı zamanda önbelleği kullanmayan ve çalıştırmayan temalardan da sil: flush