MVC Bundle - 从数据库中包含css较少的变量

时间:2015-06-02 15:09:38

标签: asp.net-mvc less bundle

正如标题所说 - 我在BundleConfig中使用LessBundle将所有较少的文件捆绑在一起。

我的网站上将有N个用户定义的主题(仅限于特定变量,如背景颜色)。

我希望能够从数据库中创建一个包含这些变量的较少文件,然后可以将这些变量与其他较少的文件捆绑在一起。

另一个重要的部分是,当用户更新主题时,较少的文件应该具有缓存清除功能。

最好的方向是什么?

2 个答案:

答案 0 :(得分:0)

据我所知,有两种方法可以处理css包,一种是动态的。除非你绝对不得不这样做,否则我不会动态,因为这会在应用程序中导致一些陷阱。

如果您正在寻找一个简单的xml配置文件,其中包含您可以写入的值,可以存储在数据库中并从数据库中取出以便在系统中读取和使用可能更适合。

然后我会根据这些值加载相应的css文件夹并在每个文件夹中使用相同的css命名约定。

示例我有一个浅色和深色主题0和1,我的xml文件设置为1所以每次我转到加载一个视图我会快速检查它是否为1或0然后设置ViewBag.cssfolder = "dark";

我然后在每个视图上加载我的css时我将执行以下操作

<link rel="stylesheet" type="text/css" href="<%=VirtualPathUtility.ToAbsolute("~/" + @viewBag.cssfolder + "/file.css")%>" />

可能有更好的方法可以做到这一点,但这将是一个快速的答案,希望能让你顺利前进。

答案 1 :(得分:0)

LessCss附带command-line tool

  

全局变量

     

lessc --global-var =&#34; my-background = red&#34;此选项定义变量   可以由文件引用。有效地宣布   在你的基础的顶部较少的文件,这意味着它可以使用,但它也   如果在文件中定义了此变量,则可以覆盖它。

     

修改变量

     

lessc --modify-var =&#34; my-background = red&#34;与全球相反   变量选项,这将声明放在基数的末尾   文件,意味着它将覆盖Less文件中定义的任何内容。

     

网址参数

     

lessc --url-args =&#34; cache726357&#34;此选项允许您指定   继续讨论每个URL。这可以用于缓存破坏   实例

您可以使用MSBuild将此工具集成到构建过程中,或将其作为命令行构建选项运行。我确定您可以编写一种方法,在构建期间将配置值传递给此工具。祝你好运!