ত্রুটির বার্তা কি:
প্রয়োজনীয় প্যারামিটার 'থিম_ডির' পাস করা হয়নি
এটি কি ম্যাজেন্টো 2 এর সাথে সম্পর্কিত? এবং এই সমস্যাটি কীভাবে সংশোধন করা যায়?
ত্রুটির বার্তা কি:
প্রয়োজনীয় প্যারামিটার 'থিম_ডির' পাস করা হয়নি
এটি কি ম্যাজেন্টো 2 এর সাথে সম্পর্কিত? এবং এই সমস্যাটি কীভাবে সংশোধন করা যায়?
উত্তর:
যদি আপনি সরাসরি থিম অপসারণ করেন তবে কেবলমাত্র (ম্যাজেন্টো পথে নয়)।
তারপরে এই পদক্ষেপগুলি অনুসরণ করুন।
সামগ্রীটি মুছুন app/design/frontend/<Vendor>
(নিশ্চিত করুন এটির প্রথমে আপনি ব্যাক আপ করবেন)।
ফোল্ডার var/view_preprocessed
& এর সমস্ত সামগ্রী মুছুন pub/static/frontend
।
আপনার theme
টেবিলটিতে যান এবং আপনার তৈরি থিমের জন্য এন্ট্রি মুছুন।
তারপর...
আপনার core_config_data
টেবিলটিতে যান এবং অনুসন্ধান করুন theme
এবং এতে আপনি design/theme/theme_id
আপনার ডিফল্ট থিম আইডি প্রতিস্থাপনের মতো পাথ রেকর্ডগুলি পাবেন ।
আপনার ক্যাশে ফ্লাশ করুন php bin/magento cache:flush
এর পরেও যদি আপনার কোনও সমস্যার মুখোমুখি হন তবে আমাকে জানান।
theme
টেবিলটি ঠিক করেছি, তবে core_config_data
মানটি ভুলে গিয়েছি ।
setup:static-content:deploy
অ্যাডমিন চালানোর পরে ইউআইতে ফিরে গেল।
pub/static/.htaccess
সেখানে ছিল না। ধন্যবাদ
এই ত্রুটি বার্তার অর্থ হল যে আপনার কাছে একটি থিম কনফিগার করা আছে যা ফাইল-সিস্টেমে বিদ্যমান নেই (আর কোনও)।
পরিবর্তে একটি বৈধ থিম নির্বাচন করে এটি ঠিক করা যেতে পারে। সামগ্রী -> কনফিগারেশনে যান , সুযোগটি (বিশ্বব্যাপী, ওয়েবসাইট, স্টোর ভিউ) নির্বাচন করুন এবং থিমটি পরিবর্তন করুন। আপনি এটি করার পরে আপনার এটি সামগ্রী -> থিমগুলি থেকেও সরিয়ে দেওয়া উচিত ।
আমার ক্ষেত্রে আমি বিক্রেতা ডিরেক্টরি থেকে একটি শিশু থিম মুছে ফেলেছি। কিন্তু ডিবি এন্ট্রি এখনও theme
টেবিলে ছিল। সুতরাং theme
টেবিলে যান এবং মুছে ফেলা থিমটি নির্দেশ করে এমন রেকর্ড মুছুন।
composer remove vendor/theme
?
rm -rf vendor/theme
theme
সারণী এন্ট্রি এবং magento\app\design\frontend\<Vendor>
এন্ট্রি একই হবে তা নিশ্চিত করুন ।
তা না হলে এটি এই সমস্যাটি সৃষ্টি করে।
অ্যাডমিন -> সামগ্রী -> ডিজাইন -> থিমগুলির মাধ্যমে অপ্রয়োজনীয় থিম সরান । মুছে ফেল. সুতরাং এটি পাশাপাশি ডিবি এন্ট্রি অপসারণ করবে।
আপনি যদি কেবল ফোল্ডারটি সরিয়ে থাকেন তবে এটি কার্যকর হবে না
এই সমস্যাটি তখনই ঘটতে পারে যখন আপনি একটি অনুকরণীয় অবস্থায় থাকুন, উদাহরণস্বরূপ একটি সি এল এল কমান্ডে। আমার এমন পরিস্থিতি হয়েছিল যেখানে আমি সিএলআইতে কোনও ইমেল প্রেরণ করতে পারি না, কারণ মোড়ানোর আদেশটি অনুকরণীয় অবস্থায় চলছিল:
$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()
]
);
এইভাবে আপনার নোংরা ছোট্ট হ্যাকের দরকার নেই।
@hakre সঠিক। আমি একই ত্রুটি পেয়েছি Required parameter 'theme_dir' was not passed
। ত্রুটির কারণ হিসাবে আমি কী করেছি তা নীচে আমি ব্যাখ্যা করছি:
আমি অ্যাপ্লিকেশন / ডিজাইন / ফ্রন্টএন্ড / মাইভেন্ডার থিম 2 / মাই থেমনেম 2 ডিরেক্টরিতে একটি থিম তৈরি করেছি এবং তারপরে ম্যাজেন্টো 2 অ্যাডমিন ব্রাউজারে " MyVendorTheme2 - myThemeName2 " থিমটি নির্বাচন করে এটি কনফিগার করেছি ( স্টোর> কনফিগারেশন> থিম সেটিং> জেনারাল > ডিজাইন> ডিজাইন থিম ) । তবে আমি তখন " আমার ThemeName2 " ডিরেক্টরিটি (আমার নতুন থিম সম্বলিত) আলাদা (বিদ্যমান) বিক্রেতা ফোল্ডার " MyVendorTheme1 " অ্যাপ্লিকেশন / ডিজাইন / ফ্রন্টট্যান্ড / MyVendorTheme1 / myThemeName2 এর অধীনে স্থানান্তরিত করার সিদ্ধান্ত নিয়েছি এবং এটি " মাইভেন্ডার থিম 2 " ফোল্ডার থেকে সরিয়ে নিয়েছি যেখানে এটা আগে ছিল। আমি সম্পদ কম্পাইল করার (রইল অর্থাত grunt clean
, grunt exec:myThemeName2
,grunt 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
।
আমি আমার ম্যাজেন্টো 2 অ্যাডমিন ব্রাউজারে ( স্টোরস> কনফিগারেশন> থিম সেটিং> জেনারাল> ডিজাইন> ডিজাইন থিম ) ফিরে গিয়ে ত্রুটিটি সমাধান করেছি, সুতরাং আমি সঠিকটিটি বেছে নিয়েছি।
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
যদি কোনও কাজ না করে থাকে তবে বিভাগ বিভাগটি পরীক্ষা করতে ভুলবেন না। সেখানে একটি ডিজাইনের সেটিংসও রয়েছে। সঠিক নকশা থিমটি নির্ধারিত হয়েছে তা নিশ্চিত করুন। আমার ক্ষেত্রে, আমি কিছু বিভাগে ত্রুটি পেয়েছিলাম।
আপনি নীচের এই কোয়েরিটি সম্পাদন করে সরাসরি ডিবি থেকে অব্যবহৃত থিমটি সরিয়ে ফেলতে পারেন:
delete from theme where theme_path in ('unusedtheme');
যখন অপ্রয়োজনীয় থিমটি অব্যবহৃত থিম এবং আপনি নিজের ক্যাশে ছাড়িয়ে নেবেন
কিছু ক্ষেত্রে আপনি কাস্টম থিমটি যথাযথ উপায়ে মুছুন তবে আপনিও এই ত্রুটির মুখোমুখি হবেন। এই অবস্থায়:
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'
রিফ্রেশ করুন পৃষ্ঠা ত্রুটি চলে গেছে।
আমি বিষয়টি সমাধান করেছি। আমার ক্ষেত্রে সমস্যাটি ম্যাজেন্টো 2-এর নয় তবে একটি ভুল ক্রিয়াকলাপ ছিল যা আমি অনুসরণের আগে আগে করেছি: আমি অ্যাপ / ডিজাইন / ফ্রন্টএন্ড / মাইফোল্ডার / মাই থিমে আপেক্ষিক পথ তৈরি করে একটি থিম তৈরি করেছি এবং এটি ম্যাজেন্টো 2 অনলাইন ডকুমেন্টেশনে বর্ণিত হিসাবে নিবন্ধভুক্ত করেছি। তারপরে আমি থিমটি বাতিল করার এবং তার পরিবর্তে উপযুক্ত কমান্ডটি ব্যবহার করার সিদ্ধান্ত নিয়েছি: বিন / ম্যাজেন্টো থিম: আনইনস্টল ফ্রন্টট্যান্ড / মাইফোর্ডার / মাই থেম আমি ফোল্ডারগুলি সরাসরি মুছে ফেলেছি। ডেটাবেস যথাযথ তথ্যের সাথে আপডেট না হওয়ায় এটি ভাল অপারেশন নয়। সমাধান: পিএইচপিএমইডমিন হিসাবে ডাটাবেসের সম্পাদক সহ, মুছে ফেলা ফোল্ডারগুলির "থিম" মুছে ফেলা ফোল্ডারে রেকর্ডটি মুছুন। আমি আশা করি এটি সাহায্য করবে!
আমি জানি এই প্রশ্নটি বেশ পুরানো, তবে যেহেতু আমি আজই এটির মধ্যে এসেছি এবং আমার সমস্যাটি কী তাড়াতাড়ি খুঁজে পেয়েছি, তাই আমি আমার উত্তরটি এই সকলের জন্য একটি অনুস্মারক হিসাবে আমার উত্তর পোস্ট করার সিদ্ধান্ত নিয়েছিলাম, যারা আমার মতো, পিএইচপিস্টর্ম ব্যবহার করে ম্যাজেন্টোর সাথে কাজ করার জন্য: শাখাগুলি স্যুইচ করার সময় আপনার ফাইলগুলি পরীক্ষা করে দেখুন।
আমার ক্ষেত্রে, যে শাখায় আমি কাজ করছিলাম সেগুলির প্রয়োজনীয় থিম ফাইলগুলি ছিল না (থিম শাখা থেকে মাস্টার শাখায় পরিবর্তিত হয়ে গেলে তারা পিএইচপিস্টোরমে স্ট্যাশ করে দিয়েছিল) কারণ তারা এখনও এতে একীভূত হয়নি, সুতরাং ত্রুটি।
আশা করি এটি কারও সাহায্য করবে।
ওয়েবসাইটে সমস্ত থিম অস্থায়ী ফাইলগুলি মুছুন যা ওয়েবসাইটে ব্যবহৃত হচ্ছে না এবং থিম থেকে মুছুন যা ব্যবহার করছে না এবং ক্যাশে চালাচ্ছে না: ফ্লাশ