浏览文章
文章信息
Magento2 异常报错Exception #0 (InvalidArgumentException): Required parameter 'theme_dir' was not passed【已解决】
19407
1、报错信息
Exception #0 (InvalidArgumentException): Required parameter 'theme_dir' was not passed2、报错原因
原因可能一、
系统数据库中存在一个源码中不存在的主题。意思就是说:你有一个主题在数据库中被找到,但是现实代码中却不存在这个主题。
原因可能二、
主题目录没有适当的访问权限。
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使用旧的数据库名字,导致数据不完全覆盖。还有在代码中删除了主题,但是系统中没有修改过来,还在引用已经丢失的主题。