आवश्यक पैरामीटर 'theme_dir' पारित नहीं किया गया था


61

त्रुटि संदेश क्या है:

आवश्यक पैरामीटर 'theme_dir' पारित नहीं किया गया था

क्या यह Magento 2 से संबंधित है? और इस समस्या को कैसे ठीक किया जा सकता है?


मैंने इसे विषय फ़ोल्डर की अनुमति बदलकर तय किया
taoufiqaitali

हर समाधान की कोशिश की, मैग्नेटो को फिर से स्थापित करना
रॉबर्ट सिनक्लेयर

जवाबों:


86

बस अगर आप सीधे विषय को हटा रहे हैं (मैगेंटो तरीके से नहीं)।

फिर इन चरणों का पालन करें।

चरण 1: फ़ाइल संचालन

सामग्री को हटाएं app/design/frontend/<Vendor>(सुनिश्चित करें कि आप इसे पहले वापस कर दें)।

फ़ोल्डर var/view_preprocessedऔर की सभी सामग्री को हटा दें pub/static/frontend

चरण 2: डीबी संचालन

अपनी themeतालिका पर जाएं और अपने बनाए थीम के लिए प्रविष्टि हटाएं।

उसके बाद...

अपनी core_config_dataतालिका पर जाएं और खोज करें themeऔर आपको इसमें design/theme/theme_idअपने डिफ़ॉल्ट थीम आईडी को बदलने जैसे पथ रिकॉर्ड मिलेंगे ।

चरण 3: फ्लश कैश

अपना कैश फ्लश करें php bin/magento cache:flush

आपको बता दें कि इसके बाद भी आपको कोई समस्या आती है।


धन्यवाद। मुझे एक ही समस्या थी जब मैंने एक विषय को हटा दिया था। डेटाबेस में शेष अवशेष को हटाना न भूलें। मैंने theme-able को ठीक किया , लेकिन core_config_dataमूल्य के बारे में भूल गया ।
गिएल बर्कर्स

@GielBerkers: वेलकम :)
कौशल सुथार

@ KaushalSuthar ने इस पर काम नहीं किया, बजाय व्यवस्थापक पाठ प्रारूप में चला गया। फिर चलाने के बाद setup:static-content:deployव्यवस्थापक यूआई में वापस चला गया।
अश्वनी शुक्ल

@ अश्विनी शुक्ला: प्रक्रिया के दौरान आपसे कुछ गलती हो गई होगी ...
कौशल सुथार

@ कौशलसुथर ने जो गलती की थी, मैं pub/static/.htaccessउसमें नहीं था। धन्यवाद
अश्वनी शुक्ल

28

इस त्रुटि संदेश का मतलब है कि आपके पास एक थीम कॉन्फ़िगर है जो फ़ाइल-सिस्टम (किसी भी अधिक) पर मौजूद नहीं है।

इसके बजाय एक वैध विषय का चयन करके इसे आसानी से तय किया जा सकता है। पर जाएं सामग्री -> विन्यास , गुंजाइश (वैश्विक, वेबसाइट, store_view) का चयन करें और विषय बदल जाते हैं। आपके द्वारा यह करने के बाद कि आपको इसे सामग्री -> थीम्स से भी हटा देना चाहिए ।

स्टोर के लिए विषय बदलें

संदर्भ


यह भी मामला हो सकता है अगर आपके थीम डायरेक्टरी में उचित अनुमति नहीं है।
नाथन मोइनवाज़िरी

अनुमतियाँ कुछ Magento लिपियों AFAIK द्वारा जाँच की जानी चाहिए, लेकिन आप सही हैं, यह एक ही योग्य है: एक दुर्गम निर्देशिका अक्सर एक गैर-मौजूदा निर्देशिका के समान व्यवहार करती है।
हकर्रे

3
यह अब वह स्थान नहीं है जहां यह स्थित है। अब सामग्री टैब में।
CarComp

@CarComp: एक अद्यतन स्क्रीनशॉट प्रदान करने और उत्तर को संपादित करने के लिए स्वतंत्र महसूस करें। जब मैंने उत्तर दिया, तो यह दस्तावेज के रूप में था।
hakre

11

मेरे मामले में मैंने वेंडर निर्देशिका से एक बाल विषय हटा दिया। लेकिन themeतालिका में डीबी प्रविष्टि अभी भी थी । इसलिए themeतालिका पर जाएं और हटाए गए विषय को इंगित करने वाले रिकॉर्ड को हटा दें।


आपने विक्रेता निर्देशिका से कैसे हटा दिया? संगीतकार के साथ composer remove vendor/theme?
हक़

नहीं, बसrm -rf vendor/theme
अरविंद ०

7

सुनिश्चित करें कि themeतालिका प्रविष्टि और magento\app\design\frontend\<Vendor>प्रविष्टि समान होगी।

यदि यह इस मुद्दे का कारण नहीं है।

अनावश्यक विषय को व्यवस्थापक के माध्यम से निकालें -> सामग्री -> डिजाइन -> विषय-वस्तु । इसे मिटाओ। तो यह डीबी एंट्री को भी हटा देगा।

अगर यू केवल फ़ोल्डर को हटा दें तो यह काम नहीं करेगा


7

यह समस्या तब भी हो सकती है जब आप एक अनुकरणीय अवस्था में हों, उदाहरण के लिए CLI कमांड में। मेरे पास एक ऐसी स्थिति थी जहां मैं सीएलआई में ई-मेल नहीं भेज सकता था, क्योंकि रैपिंग कमांड एक अनुकरणीय स्थिति में चल रहा था:

$this->appState->emulateAreaCode(AppArea::AREA_GLOBAL, function() {
    // In this section the email was sent
});

उपरोक्त उदाहरण में, जब ई-मेल यह टेम्प्लेट डीआईआर निर्धारित करने की कोशिश कर रहा था, तो यह मैप करेगा global/Magento/backend, जो कि गैर-मौजूद है। इसे ठीक करने के लिए, मुझे इसे अपने निर्माता में मैन्युअल रूप से जोड़ना होगा:

/** @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')
);

इस फिक्स के बाद, समस्या हल हो गई और मैं ई-मेल भेज सकता था।

अपडेट करें:

जब सीएलआई का उपयोग करके मेल भेजने की बात आती है, तो उत्सर्जन का उपयोग करने के लिए एक अधिक उचित तरीका होगा। उदाहरण के लिए:

/** @var Magento\Framework\App\State $state */
$state->emulateAreaCode(
    'frontend',
    [$this->accountManagement, 'initiatePasswordReset'],
    [
        $customer->getEmail(),
        AccountManagement::EMAIL_REMINDER,
        $customer->getWebsiteId()
    ]
);

इस तरह से आपके पास अपने गंदे छोटे हैक्स नहीं हैं।


इस गहराई में साझा करने के लिए धन्यवाद। यह जवाब काफी हद तक अपना हो जाता है, यह देखने में बहुत अच्छा लगता है।
हकरे ha ’

4

Daud sql UPDATE core_config_data SET value=NULL WHERE path='design/theme/theme_id'

तो स्पष्ट pub/static/frontend, var/view_preprocessing, var/cache, var/page_cacheनिर्देशिका।


1

@ ठाकरे सही हैं। मुझे वही त्रुटि मिली Required parameter 'theme_dir' was not passed। नीचे मैंने बताया कि त्रुटि के कारण मैंने क्या किया:

मैं एप्लिकेशन / डिज़ाइन / फ्रंटएंड / MyVendorTheme2 / myThemeName2 निर्देशिका में एक थीम बना रहा हूं , और फिर इसे Magento 2 व्यवस्थापक ब्राउज़र ( स्टोर> कॉन्फ़िगरेशन> थीम सेटिंग> सामान्य> डिज़ाइन थीम ) " MyVendorTheme2 - myThemeName2 " थीम का चयन करके कॉन्फ़िगर किया गया है। । लेकिन मैंने तब " myThemeName2 " निर्देशिका (मेरी नई थीम युक्त) को एक अलग (मौजूदा) विक्रेता फ़ोल्डर " MyVendorTheme1 " ऐप / डिज़ाइन / फ़्रंट / MyVendorTheme1 / myThemeName2 पर ले जाने का निर्णय लिया , और इसे " MyVendorTheme2 " फ़ोल्डर से हटा दिया यह पहले था। मैं संपत्ति संकलित करने के लिए (दीं यानी , ,grunt cleangrunt exec:myThemeName2grunt less:myThemeName2), और फिर मेरी थीम सबडोमेन (यानी http: // myvirtualhostdomain: myport / myvendortheme1_mythemename2_magento2_quickstart / ) पर अपना ब्राउज़र खोला ।

प्रारंभ में मुझे अनिर्दिष्ट त्रुटि मिली: There has been an error processing your request Exception printing is disabled by default for security reasons. Error log record number:

मैं का नाम बदलकर त्रुटि रिपोर्टिंग सक्षम pub/errors/local.xml.sampleकरने के लिए local.xml, और पेज रिफ्रेश किया गया। मुझे तब त्रुटि के साथ प्रस्तुत किया गया था Required parameter 'theme_dir' was not passed

मैंने अपने Magento 2 व्यवस्थापक ब्राउज़र ( स्टोर> कॉन्फ़िगरेशन> THEME SETTINGS> GENERAL> डिज़ाइन> डिज़ाइन थीम ) में वापस जाकर त्रुटि का समाधान किया , जिसमें मेरा पिछला और अब अमान्य डिज़ाइन विषय चयनित था, इसलिए मैंने सही चुना।


मुझे यह त्रुटि केवल तभी मिलती है जब env.php में रेडिस कॉन्फ़िगरेशन के लिए 'कैश' जोड़ते हैं। परिवर्तन निकालें, और यह ठीक काम करता है। तो is कैश ’को जोड़ने पर ही क्यों? मैंने ऐरे के सिंटैक्स की जाँच की और यह ठीक है। वही कैश => मान मेरे स्टेजिंग सर्वर (कट / पेस्ट) पर काम कर रहा है
स्कॉट

1

कस्टम थीम इंस्टॉल करने के बाद उत्पाद छवियों को सहेजते समय यह त्रुटि मेरे साथ हुई।

मेरे पास कस्टम विषय था जो एक आभासी प्रकार के रूप में सेट किया गया था, जो कि विषय तालिका में DB में है, टाइप = 1. मेरे मामले में मैं अब विषय का उपयोग नहीं कर रहा था इसलिए मैंने इसे तालिका से हटा दिया।


1

1 - व्यवस्थापक पैनल में विषयों की पहचान करने के लिए नीचे दिए गए आदेश का उपयोग करें।

n98-magerun2 dev:theme:list

2 - स्थापित थीम को पहचानने के लिए कमांड चलाएँ:

ls -lha app/design/frontend/MyThemePackage/

3- जो थीम मौजूद नहीं है, उसे बनाने के लिए नीचे दिए गए इन कमांड्स को चलाएं:

n98-magerun2 deploy:mode:set developer
n98-magerun2 dev:console
make:theme frontend MyThemePackage MyThemeName

0

अगर कुछ भी काम नहीं किया है, तो श्रेणियों के अनुभाग की जांच करना न भूलें। वहाँ एक डिजाइन सेटिंग्स भी है। सुनिश्चित करें कि सही डिज़ाइन विषय असाइन किया गया है। मेरे मामले में, मुझे केवल कुछ श्रेणियों में त्रुटि मिल रही थी।


क्या आप एक उदाहरण परिदृश्य प्रदान कर सकते हैं जहाँ यह समस्या हो सकती है? केवल एक ही मैं सोच सकता हूं कि यदि लेआउट को एक विकल्प में बदल दिया गया था जो केवल एक कस्टम थीम के भीतर मौजूद है, तो थीम हटा दी जाती है। लेकिन, यदि यह केवल डिफ़ॉल्ट लेआउट (या डिफ़ॉल्ट के संशोधित संस्करण, उसी नाम का उपयोग करते हुए) का उपयोग करते हुए होने थे, तो यह निश्चित रूप से कस्टम थीम के साथ एक गलती का अर्थ है न कि स्वयं Magento सॉफ्टवेयर के साथ?
जोशुआ बाढ़

0

जब आप उत्पाद जोड़ रहे हैं या संपादित कर रहे हैं तब डिज़ाइन अनुभाग पर जाएँ और लेआउट विकल्प बदलें।

यहाँ छवि विवरण दर्ज करें


0

आप नीचे दिए गए क्वेरी को निष्पादित करके DB से अप्रयुक्त विषय को सीधे हटा सकते हैं:

delete from theme where theme_path in ('unusedtheme');

जब अनुपयोगी अप्रयुक्त विषय है, और उसके बाद आप अपना कैश जमा करेंगे


0

मेरे पास यह समस्या थी जब मैंने दुर्घटना ऐप / desing / adminhtml / theme-name फ़ोल्डर से हटा दिया। इसे वापस लाने से मेरी समस्या हल हो गई। इसके अलावा यह केवल तब हुआ जब मैंने व्यवस्थापक पैनल में प्रवेश करने की कोशिश की।


0

कुछ मामलों में आप कस्टम थीम को उचित तरीके से हटाते हैं तो आपको इस त्रुटि का भी सामना करना पड़ेगा। इस दशा में:

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'

पृष्ठ त्रुटि को ताज़ा करें।


0

मैंने मसला हल कर दिया। मेरे मामले में समस्या Magento2 नहीं थी, लेकिन एक गलत ऑपरेशन जो मैंने समय से पहले किया था: मैंने ऐप / डिज़ाइन / फ़्रंट / MyFolder / MyTheme में सापेक्ष पथ बनाते हुए एक थीम बनाई और इसे Magento 2 ऑनलाइन दस्तावेज़ में समझाया गया है। तब मैंने थीम को रद्द करने और इसके बजाय उचित कमांड का उपयोग करने का निर्णय लिया: बिन / मैगेंटो थीम: सीमांत / MyFolder / MyTheme की स्थापना रद्द करें मैंने सीधे फ़ोल्डर्स को हटा दिया। यह एक अच्छा संचालन नहीं है क्योंकि डेटाबेस उचित जानकारी के साथ अद्यतन नहीं है। समाधान: phpmyadmin के रूप में डेटाबेस के एक संपादक के साथ, हटाए गए फ़ोल्डरों के लिए "टेबल" थीम में रिकॉर्ड को नष्ट कर देना। मुझे उम्मीद है कि इससे सहायता मिलेगी!


0

मुझे पता है कि यह प्रश्न काफी पुराना है, लेकिन जब से मैं आज ही इसमें भाग गया और जल्दी से पता चला कि मेरी समस्या क्या है, मैंने अपना उत्तर उन सभी के लिए एक अनुस्मारक के रूप में पोस्ट करने का फैसला किया, जो मेरी तरह, मैगेंटो के साथ काम करने के लिए PhPStorm का उपयोग करते हैं: शाखाओं को स्विच करते समय अपनी फ़ाइलों की जांच करना याद रखें।

मेरे मामले में, मैं जिस शाखा पर काम कर रहा था, उसके पास आवश्यक विषय फाइलें नहीं थीं (जब वे थीम शाखा से मास्टर शाखा में बदल गए) तो वे PhstStorm द्वारा घिस गए क्योंकि वे अभी तक इस पर विलय नहीं हुए हैं, इस प्रकार त्रुटि।

आशा है कि यह किसी की मदद कर सकता है।


-1

सभी थीम अस्थायी फ़ाइलों को हटाएं जो वेबसाइट पर उपयोग नहीं कर रही हैं और उस थीम से भी हटाएं जो कैश का उपयोग नहीं कर रही है और चला रही है: फ्लश

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.