如何在theme.json中从父主题优雅导入overrides.scss?
在Shopware theme.json中导入父主题overrides.scss的最优方式
你完全不需要使用冗长的相对路径,Shopware主题系统提供了内置的@ParentTheme别名来直接定位父主题资源,这是最优雅的解决方案:
方法一:在子主题overrides.scss中直接用别名导入
在子主题的overrides.scss里替换原有相对路径,改用以下写法即可:
@import '@ParentTheme/src/Resources/app/storefront/src/scss/overrides.scss';
@ParentTheme是Shopware自动解析的别名,会直接指向父主题的资源根目录,彻底避免层级混乱的相对路径问题。
方法二:调整theme.json加载顺序实现全局前置加载
如果你希望父主题的overrides.scss在子主题的覆盖样式之前全局加载,无需手动导入,可以调整theme.json中的SCSS文件顺序:
[ "@ParentTheme/src/Resources/app/storefront/src/scss/overrides.scss", "@ChildTheme/src/Resources/app/storefront/src/scss/overrides.scss", "@ParentTheme", "@ChildTheme", "app/storefront/src/scss/base.scss" ]
这样父主题的覆盖样式会先加载,子主题的overrides.scss可以直接基于父主题的样式进行修改,省去手动导入的步骤。
你的现有配置中已经包含@ParentTheme,所以上述两种方法都可以直接生效。
内容的提问来源于stack exchange,提问作者SmashingJummy
相关产品推荐
相关产品推荐

