多站点场景的主题?
Theming on Multi-Site scenario?
我们正在尝试在现有项目上实施 Spartacus,现在面临为每个现有基础站点提供不同样式(例如“电子”、“外观”)的问题。通过 URL 区分,我们可以访问每个基本站点的内容(electronics.local:4200 和 appearal.local:4200 由同一应用程序提供服务,但内容不同)。
如何通过在CMS(后台)中为Spartacus中的每个基地设置主题属性来像在加速器中配置不同的样式?
提前致谢!
在 spartacus slack 频道的帮助下,我找到了一个非常可靠的解决方案,但没有直接链接到 CMS(后台)的基础站点的主题 属性。它只是检索当前的 BaseSite,并据此向 app.component.
中的 cx-storefront 标签添加一个 class
app.component.ts:
export class AppComponent {
public $activeSite: Observable<string> = this.baseSiteService.getActive();
constructor(
private baseSiteService: BaseSiteService
) {
}
}
app.component.html:
<ng-container *ngIf="$activeSite | async as activeSite">
<cx-storefront [ngClass]="activeSite"></cx-storefront>
</ng-container>
现在我有一个 css-class 等于 cx-storefront dom 元素中的当前 BaseSite UID,并且能够相应地应用我的样式:
<cx-storefront class="electronics stop-navigating" _ngcontent-ipq-c296="" ng-reflect-ng-class="electronics" tabindex="0">
我们正在尝试在现有项目上实施 Spartacus,现在面临为每个现有基础站点提供不同样式(例如“电子”、“外观”)的问题。通过 URL 区分,我们可以访问每个基本站点的内容(electronics.local:4200 和 appearal.local:4200 由同一应用程序提供服务,但内容不同)。 如何通过在CMS(后台)中为Spartacus中的每个基地设置主题属性来像在加速器中配置不同的样式?
提前致谢!
在 spartacus slack 频道的帮助下,我找到了一个非常可靠的解决方案,但没有直接链接到 CMS(后台)的基础站点的主题 属性。它只是检索当前的 BaseSite,并据此向 app.component.
中的 cx-storefront 标签添加一个 classapp.component.ts:
export class AppComponent {
public $activeSite: Observable<string> = this.baseSiteService.getActive();
constructor(
private baseSiteService: BaseSiteService
) {
}
}
app.component.html:
<ng-container *ngIf="$activeSite | async as activeSite">
<cx-storefront [ngClass]="activeSite"></cx-storefront>
</ng-container>
现在我有一个 css-class 等于 cx-storefront dom 元素中的当前 BaseSite UID,并且能够相应地应用我的样式:
<cx-storefront class="electronics stop-navigating" _ngcontent-ipq-c296="" ng-reflect-ng-class="electronics" tabindex="0">