magento 2必需参数' theme_dir'没有通过

时间:2015-11-26 14:39:13

标签: configuration themes magento2

安装主题并在后端应用主题(系统 - >配置 - >常规 - >主题)后,清除缓存并刷新前端,它会在magento2.the中显示错误错误如下

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,但前端是空白页...

7 个答案:

答案 0 :(得分:1)

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

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

  • test.php的
  • test.php的
  • test.php的
  • test.php的
  • test.php的

你明白了......

$ theme-> getFullPath()可能会输出类似/ design / Yourcompany / Yourtheme的内容,但您的实际路径可能是design / Yourcompany / yourtheme。对Linux系统的大写非常严格,会引起各种令人头疼的问题。

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

如果您打算调试$ theme-> getFullPath(),请将其放在\ Magento \ Framework \ View \ Design \ Fallback \ Rule \ Simple类中。

答案 1 :(得分:1)

在添加或编辑产品时,请转到“设计”部分并更改布局选项。 example

答案 2 :(得分:1)

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

答案 3 :(得分:1)

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

如果您创建了新主题,则应在此处显示...删除另一个不活动或不必要的主题..

答案 4 :(得分:1)

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

(OR)

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

答案 5 :(得分:0)

步骤:

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

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

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

  2. 刷新配置缓存:

    php bin\magento cache:flush config
    

答案 6 :(得分:0)

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

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

另一种解决方案是使用此MySQL命令从数据库中删除无效主题

@override
void initState() {
  _userData = Firestore.instance
      .collection('user_collection')
      .where("user_id", isEqualTo: widget.userId)
      .getDocuments();
  super.initState();
}

@override
  Widget build(BuildContext context) {
    return Scaffold(
      body: FutureBuilder<QuerySnapshot>(
        future: _userData,
        builder:
            (BuildContext context, AsyncSnapshot<QuerySnapshot> userSnapShot) {
          switch (userSnapShot.connectionState) {
            case ConnectionState.waiting:
              return Center(
                child: CircularProgressIndicator(),
              );
            default:
              if (userSnapShot.hasError) {
                return new Text('Error: ${userSnapShot.error}');
              } else if (userSnapShot.hasData &&
                  userSnapShot.data.documents.length == 1) {
                return Center(
                  child: Column(
                    mainAxisAlignment: MainAxisAlignment.center,
                    children: <Widget>[
                      Text(userSnapShot.data.docs[0]['user_name']),
                      Text(userSnapShot.data.docs[0]['user_email']),
                      Text(userSnapShot.data.docs[0]['age']),
                      Text(userSnapShot.data.docs[0]['gender']),
                    ],
                  ),
                );
              } else {
                return Center(
                  child: Text(
                    "Couldnt't fetch user details",
                  ),
                );
              }
          }
        },
      ),
    );
  }

参考来源: https://magentip.com/required-parameter-theme_dir-was-not-passed-magento-2/