基于子域的客户特定css,带有scss

时间:2016-04-08 02:11:42

标签: html css angularjs

在运行期间,任何人都有过客户特定css注入的经验吗?

我们有一个门户网站,希望客户能够自定义它。这基本上是4个变量(颜色,图标,背景),但它影响大约100个css类。我们将scss分开,因此我们在branding.scss中获得了base.scss部分和特定品牌相关的类

然后我们使用webpack构建所有scss并创建style.cssvendor.style.css。通过将style.css分为style.scsbranding.css,可以扩展此范围。然而,这种品牌化对每个客户都是不同的,应该能够被客户改变。他们在门户网站上获得了滑块和颜色选择器等。

我看到两种选择如何做到这一点:

  1. 在每个新版本发布期间,根据brandingTemplate.scss和客户选择的设置创建一个新的customerABranding.css。根据子域(例如customerA.company.com)

  2. 使用Ajax制作可获取和可注入的内容
  3. 获取"尚未完成"包含$$ CUSTOMER_BACKGROUND_URL $$等占位符的css文件,并使用相应的值执行string.replace(看似粗略)。这个自定义css必须在新版本中每次构建,并且需要一些hacky webpack文件替换处理

  4. 两个人看起来都很丑陋,但我没有其他想法。非常感谢对此的讨论。

    感觉就像以前必须做的事情,但我似乎无法找到一种优雅的方式。

0 个答案:

没有答案