1

安装主题并在后端应用主题(系统->配置->常规->主题)后,清除缓存并刷新前端它在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主题,但前端是空白页...

4

7 回答 7

1

我遇到了同样的问题,修复主题文件夹权限解决了这个问题

于 2017-09-15T19:13:49.110 回答
1

删除主题表中系统中未定义主题的行..

如果您创建了新主题,它应该显示在这里...删除另一个不活跃或不必要的主题..

于 2018-02-19T06:40:46.493 回答
1

从错误看来,您配置了一个文件系统上不存在的主题(不再存在)。它可以通过选择一个有效的主题来轻松修复。转到内容-> 配置,选择范围(全局、网站、store_view)并更改主题。完成后,您还应该将其从内容-> 主题中删除。

(或者)

如果您的主题目录没有适当的权限,也可能是这种情况

于 2018-08-21T04:57:11.733 回答
1

如果您正在构建一个新主题,或者试图弄清楚为什么新安装的主题会导致您的网站崩溃,则可能是由于大小写问题。在 linux 中,确保您的主题所在的目录具有正确的大小写,以使其正常工作。不能保证主题开发人员使用的是 linux 系统(他们可能一直在使用 windows,是的,它可以运行 magento + php + windows,尽管它很杂乱)。这将允许主题开发人员忽略目录/文件名的大写,并可能发布一个与强制大写的文件系统不兼容的主题。

在linux中,您可以将所有这些文件放在一个目录中......

  • 测试.php
  • 测试.php
  • 测试.php
  • 测试文件
  • 测试.PHP

你明白了....

$theme->getFullPath() 可能会输出类似 /design/Yourcompany/Yourtheme 的内容,但您的实际路径可能是 design/Yourcompany/yourtheme。这种大小写在 linux 系统上非常严格,会引起各种头痛。

此外,registration.php 文件与目录具有相同的大小写以及 $theme->getFullPath() 的输出也非常重要。所有这些都必须匹配。

如果你打算调试 $theme->getFullPath(),它在 \Magento\Framework\View\Design\Fallback\Rule\Simple 类中。

于 2016-11-14T21:06:18.363 回答
1

当您添加或编辑产品时,请转到设计部分并更改布局选项。 例子

于 2017-02-15T14:05:44.897 回答
0

当您在 app/design/frontend// 中删除 Magento 2 的主题文件夹,但未从数据库中删除主题数据时,会发生错误。

在 Magento 2 管理部分,转到:内容 => 设计 => 配置并将主题更改为有效主题将修复此错误

另一种解决方案是使用此 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/

于 2020-11-08T05:13:19.400 回答
0

脚步:

  1. 更改当前商店的 theme_id 的值:

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

    在此处更新稳定的主题 ID。

  2. 刷新配置缓存:

    php bin\magento cache:flush config
    
于 2018-12-28T15:33:28.077 回答