1

我们有一个带有大量 CSS 的大型 ASP.NET MVC 应用程序,大约 105 个不同的文件。这些文件由组件分隔,这使得它们更易于管理。在运行时,我们使用处理程序缩小/组合这些。

此外,我们的应用程序使用皮肤设置;管理员可以自定义站点的字体和颜色。这些皮肤设置使用 NVelocity 注入到 CSS 文件中,虽然它很旧,但性能相当不错。

我想将 CSS 改为使用更少,这将允许更多代码重用和 CSS 文件内部的清洁度。我正在为执行此操作的最佳选择而苦苦挣扎。我目前的思路是这样的:

  1. 管理员进行皮肤修改,并保存
  2. 保存时,应用程序会在磁盘上生成一个 skin.less 文件,该文件是包含所有变量的 masterless 文件
  3. 需要较少变量的后续 CSS 文件在 skin.less 上执行 @import
  4. 更少的文件在处理程序中被处理和缩小/组合,并提供给客户端。

我的问题是,这似乎是将动态变量提供给较少文件的最佳方法吗?在磁盘上生成 skin.less 文件是我唯一的选择,还是 @import 语句可以引用处理程序本身,因此不需要在磁盘上生成文件?

4

1 回答 1

0

我认为你可以这样做。与您所说的不太一样,但我在这里做了一些使用 LESS 和蒙皮的概念证明:

https://github.com/aguyawry/less_tests

我认为一个区别是,在这个 POC 中,标记的 less 文件是加载在标记中的文件,它导入基本应用程序样式,然后指定新的变量来覆盖基本的初始值。

这个 POC 都是客户端,但实际上我们也做这个服务器端。实际上,我们正在构建一个 UI 供客户自己选择样式(背景颜色、边框颜色……),然后将其中的皮肤样式表渲染到系统中。

我认为 TheZ 的评论不适用,因为您在服务器端进行所有操作。只有在您执行此客户端时才会发生阻塞。

于 2013-01-04T21:24:41.243 回答