浏览文章

文章信息

Magento2 异常报错Exception #0 (InvalidArgumentException): Required parameter 'theme_dir' was not passed【已解决】 19407

1、报错信息

Exception #0 (InvalidArgumentException): Required parameter 'theme_dir' was not passed

2、报错原因

原因可能一、

系统数据库中存在一个源码中不存在的主题。意思就是说:你有一个主题在数据库中被找到,但是现实代码中却不存在这个主题。



原因可能二、

主题目录没有适当的访问权限。


3、解决:


针对原因一、

第一种方法:你可以补上这个主题,也可以修改成引用其他存在的主题。

第二种方法:完全删除错误主题

1、删除design目录下发生错误的主题

2、如果lib下有主题引用的文件,也删除。

3、DELETE FROM theme WHERE theme_id = '<theme_number>';

当然你还可以在数据库可视化管理软件中删了这个主题:

4、部署静态文件bin/magento setup:static-content:deploy

5、编译文件bin/magento setup:di:compile

6、清空静态文件存储bin/magento cache:flush

7、清空cms主题引用UPDATE `cms_page` SET `custom_theme` = NULL WHERE `custom_theme` IS NOT NULL

针对原因二、

为这个主题目录授权,具体授权参考magento文档中对magento的授权检查,官网文档地址:。


温馨提示:

这种情况多出现在新安装的magento使用旧的数据库名字,导致数据不完全覆盖。还有在代码中删除了主题,但是系统中没有修改过来,还在引用已经丢失的主题。



原创