Gerekli parametre 'theme_dir' iletilmedi


Yanıtlar:


86

Sadece temayı doğrudan kaldırıyorsanız (Magento tarzında değil).

Ardından bu adımları izleyin.

1. ADIM: Dosya İşlemleri

İç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.

2. ADIM: DB İşlemleri

Senin gidin thememasa ve sizin oluşturduğunuz tema için girişi silin.

Daha sonra...

Senin gidin core_config_datamasa ve aramak themeve gibi yol kayıtlarını alacak design/theme/theme_idiçinde varsayılan tema kimliği değiştirin.

ADIM 3: Önbelleği temizleme

Önbelleğini temizle php bin/magento cache:flush

Bundan sonra hala herhangi bir sorunla karşılaşırsanız bana bildirin.


Teşekkürler. Bir temayı silerken de aynı sorunu yaşadım. Veritabanında kalan kalıntıları silmeyi unutmayın. theme-Table düzeltmek yaptım , ancak core_config_datadeğeri unuttum .
Giel Berkers

@GielBerkers: Hoşgeldin :)
Kaushal Suthar

@KaushalSuthar bu işlem hiç işe yaramadı ancak yönetici metin biçiminde gitti. Sonra setup:static-content:deployyönetici çalıştırdıktan sonra UI'ye geri döndü.
Ashwani Shukla

@AshwaniShukla: Bu süreç sırasında bir hata yapmış olabilirsiniz ...
Kaushal Suthar

@KaushalSuthar yaptığım tek hata pub/static/.htaccessorada değildi. teşekkürler
Ashwani Shukla

28

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 .

mağaza için temayı değiştir

Referanslar


Bu, tema dizininizin uygun izinlere sahip olmaması durumunda da geçerli olabilir.
Nathan Moinvaziri

İzinler AFAIK'in bazı Magento betiği tarafından kontrol edilmelidir, ancak haklısınız, bu aynı şekilde nitelendirilir: Erişilemeyen bir dizin genellikle varolmayan bir dizine benzer şekilde davranır.
hakre

3
Burası artık bulunduğu yer değil. şimdi içerik sekmesinde.
CarComp

@CarComp: Güncellenmiş bir ekran görüntüsü sağlamaktan çekinmeyin ve cevabı düzenleyin. Cevap verdiğimde, belgelendiği gibi oldu.
hakre

11

Benim durumumda, alt dizini Satıcı dizininden sildim. Ancak DB girişi hâlâ thememasada duruyordu. Bu nedenle, themetabloya gidin ve silinen temayı işaret eden kaydı silin.


Satıcı dizininden nasıl sildiniz? Tarafından besteci ile composer remove vendor/theme?
hakre,

Hayır, sadecerm -rf vendor/theme
Arvind07

7

themeTablo 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


7

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.


Bu derinlikte paylaştığınız için teşekkür ederiz. Bu cevap oldukça kendi başına bir SSS olur, görmek çok güzel.
hakre

4

Çalıştırmak sql UPDATE core_config_data SET value=NULL WHERE path='design/theme/theme_id'

Daha sonra temizleyin pub/static/frontend, var/view_preprocessing, var/cache, var/page_cachedizinleri.


1

@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 cleangrunt exec:myThemeName2grunt 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.sampleetmek local.xmlve 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.


Bu hatayı yalnızca redis yapılandırması için env.php dosyasına 'önbellek' eklerken alırım. Değişiklikleri kaldırın ve düzgün çalışır. Peki neden sadece 'önbellek' eklerken? Dizinin söz dizimini kontrol ettim ve sorun değil. Aynı önbellek => değeri hazırlama sunucum üzerinde çalışıyor (kesilmiş / yapıştırılmış)
Scott

1

Özel bir tema yükledikten sonra ürün resimlerini kaydederken bu hata bana oldu.

Sanal bir tür olarak ayarlanmış özel temaya sahiptim, tema tablosundaki DB'de, = 1 yazın. Benim durumumda artık temayı kullanmıyordum, bu yüzden tablodan sildim.


1

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

0

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.


Lütfen bu sorunun ortaya çıkabileceği bir örnek senaryo sunabilir misiniz? Düşünebileceğim tek şey, düzenin yalnızca özel bir tema içinde var olan bir seçenek olarak değiştirilip değiştirilmediği, ardından tema kaldırılmış olmasıdır. Ancak, eğer sadece varsayılan düzenler (veya varsayılanların değiştirilmiş sürümleri, aynı ismi kullanarak) kullanırken gerçekleşecekse, magento yazılımının kendisinde değil, özel tema ile ilgili bir hataya neden olur?
Joshua Flood

0

Ürün eklerken veya düzenlerken Tasarım bölümüne gidin ve düzen seçeneğini değiştirin.

görüntü tanımını buraya girin


0

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


0

Kaza uygulamasından / desing / adminhtml / theme-name klasöründen kaldırdığımda bu sorunu yaşadım. Onu geri getirmek sorunumu çözdü. Üstelik sadece Yönetici Paneli'ne girmeye çalıştığımda meydana geldi.


0

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.


0

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!


0

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.


-1

Web sitesinde kullanılmayan tüm geçici dosyaları sil ve aynı zamanda önbelleği kullanmayan ve çalıştırmayan temalardan da sil: flush

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.