magento 2 Обязательный параметр theme_dir не был передан

После установки темы и применения темы в бэкэнде (Система-> Конфигурация-> Общие-> Тема) очистите кеш и обновите интерфейс, он выдает ошибку в magento2, как показано ниже.

Required parameter 'theme_dir' was not passed
#0 /var/www/demos/magento2new/vendor/magento/framework/View/Design/Fallback/Rule/Theme.php(69): Magento\Framework\View\Design\Fallback\Rule\Simple->getPatternDirs(Array)
#1 /var/www/demos/magento2new/vendor/magento/framework/View/Design/FileResolution/Fallback/Resolver/Simple.php(93): Magento\Framework\View\Design\Fallback\Rule\Theme->getPatternDirs(Array)
#2 /var/www/demos/magento2new/vendor/magento/framework/View/Design/FileResolution/Fallback/Resolver/Simple.php(64): Magento\Framework\View\Design\FileResolution\Fallback\Resolver\Simple->resolveFile(Object(Magento\Framework\View\Design\Fallback\Rule\Theme), 'i18n/en_US.csv', Array)
#3 /var/www/demos/magento2new/vendor/magento/framework/View/Design/FileResolution/Fallback/LocaleFile.php(42): Magento\Framework\View\Design\FileResolution\Fallback\Resolver\Simple->resolve('locale', 'i18n/en_US.csv', 'frontend', Object(Magento\Theme\Model\Theme), 'en_US', NULL)
#4 /var/www/demos/magento2new/vendor/magento/framework/View/FileSystem.php(103): Magento\Framework\View\Design\FileResolution\Fallback\LocaleFile->getFile('frontend', Object(Magento\Theme\Model\Theme), 'en_US', 'i18n/en_US.csv')

добавлен registration.php в тему, но передняя часть пустая ...


person Ram Sampathi    schedule 26.11.2015    source источник
comment
На первый взгляд кажется, что magento не идентифицирует файл registration.php. Можете ли вы удалить тему и поместить ее обратно вместе с registration.php и запустить команду обновления установки?   -  person Chiragit007    schedule 27.11.2015
comment
Команда обновления - #php bin / magento setup: обновление, правильно?   -  person Ram Sampathi    schedule 27.11.2015
comment
php -f bin / magento setup: обновление из корня Magento.   -  person Chiragit007    schedule 28.11.2015
comment
В Magento Stackexchange: «Обязательный параметр 'theme_dir' не был передан».   -  person hakre    schedule 02.02.2016


Ответы (7)


Если вы создаете новую тему или пытаетесь выяснить, почему недавно установленная тема приводит к сбою вашего сайта, это может быть связано с проблемой использования заглавных букв. В Linux убедитесь, что в каталоге, в котором находится ваша тема, используется правильный регистр, необходимый для правильной работы. Не гарантируется, что разработчик темы использовал систему linux (возможно, они использовали окна, и да, можно запускать magento + php + windows, хотя это не так). Это позволило бы разработчику темы игнорировать использование заглавных букв в каталоге / имени файла и, возможно, выпустить тему, которая на самом деле несовместима с файловой системой, которая принудительно использует заглавные буквы.

В Linux вы можете иметь ВСЕ эти файлы в одном каталоге ...

  • test.php
  • Test.php
  • TEST.php
  • tEst.php
  • test.PHP

вы поняли ....

$ theme-> getFullPath () может выводить что-то вроде / design / Yourcompany / Yourtheme, но ваш фактический путь может быть design / Yourcompany / yourtheme. Это использование заглавных букв очень строгое в системах Linux и вызовет все виды головной боли.

Также очень важно, чтобы в файле registration.php были такие же заглавные буквы, что и в каталоге, и в выводе $ theme-> getFullPath (). Все это должно соответствовать.

Если вы собираетесь отлаживать $ theme-> getFullPath (), она находится в классе \ Magento \ Framework \ View \ Design \ Fallback \ Rule \ Simple.

person CarComp    schedule 14.11.2016
comment
Для меня это не было проблемой - person cjohansson; 12.09.2018

Когда вы добавляете или редактируете продукт, перейдите в раздел «Дизайн» и измените вариант макета. пример

person Abhishek    schedule 15.02.2017

Я столкнулся с той же проблемой, исправление разрешения папки темы решило проблему

person Aref Ben Lazrek    schedule 15.09.2017
comment
@cjohansson, может быть, вы удалили тему, не удаляя ее из базы данных? или файл регистрации темы неверен - person Aref Ben Lazrek; 11.09.2018
comment
Нет, это не проблема - person cjohansson; 12.09.2018

Удалите строку, тема которой не определена в вашей системе, в таблице тем.

если вы создали новую тему, она должна отображаться здесь ... удалите другую тему, которая не активна или не нужна ..

person lalit mohan    schedule 19.02.2018

Из-за ошибки кажется, что у вас настроена тема, которая не существует в файловой системе (больше). Это можно легко исправить, выбрав вместо этого допустимую тему. Перейдите в Content -> Configuration, выберите область (global, website, store_view) и измените тему. После того, как вы это сделаете, вы также должны удалить ее из Content -> Themes.

(OR)

Это также может иметь место, если каталог вашей темы не имеет необходимых разрешений.

person Ashwin Shahi    schedule 21.08.2018
comment
Это решило нашу проблему. У нас была старая тема, которая не использовалась, но все еще не была доступна в файловой системе, и, очевидно, Magento 2 в этих случаях вылетит из-за сбоя при обновлении продукта. Мы решили это, удалив старую тему, повторно выбрав нашу текущую тему и очистив кеши. - person cjohansson; 12.09.2018

Шаги:

  1. Измените значение theme_id для текущего магазина:

    SELECT * FROM core_config_data WHERE path LIKE 'design/theme/theme_id';
    

    ОБНОВЛЕНИЕ. Идентификатор стабильной темы здесь.

  2. Очистить кеш конфигурации:

    php bin\magento cache:flush config
    
person Arunprabakaran M    schedule 28.12.2018

Ошибка возникает, когда вы удаляете папку темы Magento 2 в app / design / frontend //, но не удаляете данные темы из базы данных.

В разделе администрирования Magento 2 перейдите по ссылке: Content = ›Design =› Configuration и измените тему на допустимую, чтобы исправить эту ошибку.

Другое решение - удалить недопустимую тему из базы данных с помощью этой команды MySQL.

mysql -u <dbuser> -p -e "delete from <dbname>.theme where theme_path ='<Vendorname>/<themename>' AND area ='frontend' limit 1"

Справочный источник: https://magentip.com/required-parameter-theme_dir-was-not-passed-magento-2/

person Hung Tran    schedule 08.11.2020