在运行期间,任何人都有过客户特定css注入的经验吗?
我们有一个门户网站,希望客户能够自定义它。这基本上是4个变量(颜色,图标,背景),但它影响大约100个css类。我们将scss分开,因此我们在branding.scss中获得了base.scss部分和特定品牌相关的类
然后我们使用webpack构建所有scss并创建style.css
和vendor.style.css
。通过将style.css
分为style.scs
和branding.css
,可以扩展此范围。然而,这种品牌化对每个客户都是不同的,应该能够被客户改变。他们在门户网站上获得了滑块和颜色选择器等。
我看到两种选择如何做到这一点:
在每个新版本发布期间,根据brandingTemplate.scss和客户选择的设置创建一个新的customerABranding.css。根据子域(例如customerA.company.com)
获取"尚未完成"包含$$ CUSTOMER_BACKGROUND_URL $$等占位符的css文件,并使用相应的值执行string.replace(看似粗略)。这个自定义css必须在新版本中每次构建,并且需要一些hacky webpack文件替换处理
感觉就像以前必须做的事情,但我似乎无法找到一种优雅的方式。