- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在构建一个 SaaS 产品,客户的首要要求之一是允许他们为其贴上白标。
在所有需要完成的工作中,我认为最容易掌握的部分是设置自定义子域(我在 AppEngine 上运行,但在任何服务器设置上都非常简单)。
我的主要问题围绕着前端样式的最佳实践。我的设置要求我定义颜色以覆盖 CSS 规则和覆盖 Javascript 变量。我所做的假设是我将任何图像 Assets /路径和颜色信息存储在数据库中。这是我正在考虑的两条路径,但它们似乎都有相当严重的缺陷。
我看了很多建议或其他经验,但都一无所获。白色标签的最佳实践是什么?我应该继续沿着这两条路之一走还是有更好的选择?我应该注意哪些陷阱?不同的选项对性能有影响吗?
这个问题故意与语言和框架无关,因为无论如何实现,基本原则应该是相同的。
最佳答案
我在使用 LESS 之前已经实现了这个:
我们首先更新了所有 CSS 文件以使用 LESS。所有将根据每个客户而变化的必要颜色都使用了 LESS 变量。我们将主要的 less 站点文件称为“main.less”。
当用户登录我们的系统时,它会从数据库中获取与客户主题相关的信息,并将其转换为 LESS 变量表示法。然后它会获取 main.less 内容的副本,并将客户端特定的 less 变量添加到它前面,然后将其写入客户端特定的 .less 文件(client-a.less)。然后我们的系统会将其编译成一个 css 文件 (client-a.css),然后我们的系统将其包含在每个页面请求中(例如,我们的系统会根据客户端名称知道编译后的 css 文件将被命名为什么)。
此方法将为每个客户端创建一个唯一的 .less 和 .css 文件,并将减少每次请求页面时从数据库调用客户端特定主题详细信息的任何需要,因为此编译过程仅在每次登录。
您可以通过序列化编译后的 less 文件 (client-a.less) 并将其存储为 .cache 文件来进一步节省服务器资源。现在,当每个用户登录到您的系统时,您可以将要编译到 client-a.less 的内容序列化,将其与 .cache 文件进行比较,如果不同,则继续编译 client-a.css 文件.如果没有区别,则无需编译 css 文件。
关于javascript - 如何为 SaaS 解决方案贴上白标?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23457254/
我们有一个 Android 项目,我们为不同的客户维护一个单一的代码库,每次为不同的客户编译的最快/最有效的方法是什么?我找到的几个选项和我的问题: 编写脚本:替换资源文件夹,编辑应用名称、版本等 使
我们销售的服务包括打包在 MSI 中的 .NET 应用程序,该应用程序与网络服务相结合。 我们有不少客户希望以他们的品牌/ Logo 等方式转售我们的应用程序。我们真正需要做的就是更改任务栏图标、桌面
我想构建一个 iOS 白标应用程序,该应用程序应该可以在一定程度上进行自定义,然后无需人工干预即可提交到应用程序商店。所以我想知道 Apple 是否有 API 支持,让我可以与 iTunes 对话并代
我必须为 iOS 应用程序添加白标签,但我想不出最好的方法。 我知道 Android 有“Product Flavors”,允许您自定义应用程序并在同一个项目中创建它的多个版本。 我没有找到在 iOS
我有一个 ASP.NET web 应用程序,印度的商业客户希望购买并在他们的经营场所内运行(它用于工业用途)。我这样做的最佳方法是什么,但不会失去对我的 IP 的控制?我有一些担忧: 是否仍需要混淆
大家好,即使我已经按照他们网站上的 spring 教程进行操作,我仍然会收到此错误。我一直在努力弄清楚为什么会出现此错误。我能够连接到 facebook,但是当尝试像 spring 提供的教程那样检索
这里已经有一些信息:White labeling an iOS app 我想知道是否有任何工作流程可以为 React Native 应用程序添加白标? 基本上,如果我有一个应用商店的核心应用程序。我想
我们已经在各自的应用程序商店中提供了 IOS 和 Android 应用程序。我们现在正计划给它们贴上白色标签。a) 每个使用我们的白标解决方案的客户都将使用他们自己的主题、 Logo 和可能很少的自定
我正在构建的 Flutter Web 应用程序具有基于 URL 查询字符串 /#?brd=BrandName 的白标签功能......根据要求,白标签必须基于作为域的 url 参数 brd 对于所有品
我是一名优秀的程序员,十分优秀!