安装主题并在后端应用主题(系统 - >配置 - >常规 - >主题)后,清除缓存并刷新前端,它会在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
,但前端是空白页...
答案 0 :(得分:1)
如果您正在构建新主题,或者试图弄清楚新安装的主题为何会导致您的网站崩溃,则可能是由于资本化问题。在linux中,确保主题所在的目录具有正确的大小写,以使其正常工作。主题开发人员不能保证使用Linux系统(他们可能一直在使用Windows,是的,它可能运行magento + php + windows,尽管它是一个cludge)。这将允许主题开发人员忽略目录/文件名大小写,并可能释放一个与强制大写的文件系统真正兼容的主题。
在linux中,您可以将所有这些文件放在一个目录中......
你明白了......
$ theme-> getFullPath()可能会输出类似/ design / Yourcompany / Yourtheme的内容,但您的实际路径可能是design / Yourcompany / yourtheme。对Linux系统的大写非常严格,会引起各种令人头疼的问题。
register.php文件与目录以及$ theme-> getFullPath()的输出具有相同的大小写也非常重要。所有这一切都必须匹配。
如果您打算调试$ theme-> getFullPath(),请将其放在\ Magento \ Framework \ View \ Design \ Fallback \ Rule \ Simple类中。
答案 1 :(得分:1)
答案 2 :(得分:1)
我遇到了同样的问题,修复主题文件夹权限解决了问题
答案 3 :(得分:1)
删除主题表中系统未定义主题的行..
如果您创建了新主题,则应在此处显示...删除另一个不活动或不必要的主题..
答案 4 :(得分:1)
从该错误看来,您配置了一个主题,该主题在文件系统上不存在(不再存在)。 可以通过选择有效的主题来轻松修复它。 转到“内容”->“配置”,选择范围(全局,网站,store_view)并更改主题。完成后,还应从“内容”->“主题”中将其删除。
(OR)
如果您的主题目录没有适当的权限,也可能是这种情况
答案 5 :(得分:0)
步骤:
更改当前商店的theme_id值:
SELECT * FROM core_config_data WHERE path LIKE 'design/theme/theme_id';
在此处更新稳定的主题ID。
刷新配置缓存:
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/