在运行时将动态变量提供给较少的文件

时间:2012-10-04 15:42:07

标签: less skinning dotless

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

此外,我们的应用程序利用皮肤设置;管理员可以自定义站点的字体和颜色。使用NVelocity将这些皮肤设置注入到CSS文件中,虽然它的旧版本非常高效。

我想将CSS移动到less,这将允许CSS文件中更多的代码重用和清洁。我正在努力做到这一点的最佳选择。我目前的思路是这样的:

  1. 管理员进行皮肤修改并保存
  2. 在保存时,应用程序在光盘上生成一个skin.less文件,这是包含所有变量的主文件较少
  3. 后续需要较少变量的CSS文件在skin.less
  4. 上执行@import
  5. 在处理程序中处理和缩小/组合较少的文件,并将其提供给客户端。
  6. 我的问题是,这似乎是将动态变量提供给较少文件的最佳方法吗?在光盘上生成skin.less文件是我唯一的选择,还是@import语句可以引用处理程序本身,所以不需要在光盘上生成文件?

1 个答案:

答案 0 :(得分:0)

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

https://github.com/aguyawry/less_tests

我认为一个不同之处在于,在此POC中,标记较少的文件是加载在标记中的文件,它会导入基本应用程序样式,然后指定覆盖基础中初始值的新变量。

这个POC都是客户端,但实际上我们也是这个服务器端。我们实际上正在为客户构建一个用户界面来自己选择样式(bg颜色,边框颜色......),然后将其中的皮肤样式表渲染到系统中。

我不认为TheZ的评论适用于你所做的一切服务器端。阻止只会在你做这个客户端的时候发生。