我正在构建一个 SaaS 产品,而客户的最高要求之一是允许他们给它贴上白标签。
- 客户域
- 在 UI 中包含客户徽标
- 更改配色方案以匹配客户品牌
在需要做的所有事情中,我认为最容易掌握的部分是设置自定义子域(我在 AppEngine 上运行,但在任何服务器设置上都非常简单)。
我的主要问题围绕着前端样式的最佳实践。我的设置要求我定义颜色以覆盖 CSS 规则和覆盖 Javascript 变量。我所做的假设是我将任何图像资产/路径和颜色信息存储在数据库中。这是我正在考虑的两条路径,但似乎都有相当严重的缺陷。
- 部署任务 - 在部署之前,运行 Grunt(或其他自动化)任务,从数据库中提取客户样式信息并创建自定义 CSS / JS 文件
- 运行时 - 在应用程序引导期间,从数据库中提取客户信息并动态覆盖样式(内联样式、JS 覆盖等)
我寻找了很多建议或其他经验,但都一无所获。白标的最佳做法是什么?我应该继续走这两条路径之一还是有更好的选择?我应该注意哪些陷阱?不同选项对性能有影响吗?
这个问题有意与语言和框架无关,因为基本原则应该是相同的,无论它是如何实现的。