Shopware 6中能否实现主题的多层连续继承?
Shopware 6多层主题继承问题解答
Shopware 6完全支持多层主题继承,你想要的「新主题→当前主题→最旧主题」这种层级继承是能实现的,问题出在你当前的theme.json配置逻辑上。
你的配置问题所在
你在configInheritance、views等配置项里直接指定了@Storefront和@OldestTheme,跳过了中间的「当前主题」,相当于让新主题同时直接继承基础商店front和最旧主题,没有形成你期望的三级继承链。
正确的配置方式
新主题只需要直接继承你的「当前主题」即可,因为「当前主题」已经配置了继承「最旧主题」,继承链会自动向上传递。以下是调整后的theme.json示例(注意替换@当前主题的技术名称为实际主题标识):
{ "name": "NewTheme", "author": "Me", "configInheritance": [ "@当前主题的技术名称" ], "views": [ "@Storefront", "@Plugins", "@当前主题的技术名称", "@NewTheme" ], "style": [ "app/storefront/src/scss/overrides.scss", "@当前主题的技术名称", "app/storefront/src/scss/base.scss" ], "script": [ "@当前主题的技术名称", "app/storefront/dist/storefront/js/new-theme.js" ], "asset": [ "@当前主题的技术名称", "app/storefront/src/assets", "public" ] }
关键配置说明
configInheritance仅需指定直接父主题(你的「当前主题」),父主题已有的继承关系会自动生效,不需要重复写@OldestTheme或@Storefront。views、style等数组的顺序决定资源优先级:越靠后的项优先级越高。把@NewTheme放在最后,确保你的自定义内容能覆盖父主题;直接父主题的配置会包含其继承的最旧主题和Storefront资源,无需重复添加。
额外注意事项
- 先确认「当前主题」的
theme.json已经正确配置了继承「最旧主题」,比如它的configInheritance包含@OldestTheme,views等数组也按正确顺序包含相关项。 - 配置修改后,在Shopware后台重新激活新主题,清除系统缓存,确保继承逻辑生效。
内容的提问来源于stack exchange,提问作者EldoRay
相关产品推荐
相关产品推荐

