无点 – 无法在MVC Bundling的单独文件中引用较少的变量

我希望我不会创建一个重复的主题,但我已经搜索了两天,但无法找到解决方案。

我们正在MVC4中开始一个新项目,我们加载了较少版本的bootstrap 。 我遇到的问题是当我尝试在bootstrap.less ,我的global.less或当前文件之外的任何东西中引用一些类或变量时。 我可以在当前文件的顶部创建一个变量并使用它很好,但如果我想使用单独的文件,我必须@import它。 如果我的整个应用程序在一个文件中较少,那就没问题了,但是我必须将@import 4+个文件放到我创建的每个页面/部分文件中。

我从https://gist.github.com/2002958添加了MVC4捆绑添加

正如我所看到的,问题是每个文件都被评估并独立转换为css。 我试图简化过程并从less bundle中的所有文件构建一个较少的字符串然后转换它们( Less.Parse(lessString) ),但是我收到错误:

“您正在导入以.less结尾的无法找到的文件”

所以这是我的终极问题:有没有办法简单地解析一个较少的字符串而没有引用物理文件? 这将解决我的问题。

如果出于某种奇怪的原因这是不可能的,是否有一个我不知道的组件或过程实际上将文件捆绑在一起然后缩小它们?

关于这个主题的任何亮点都会受到赞赏,因为我正试图让这个开始工作。

这个问题也发布在Dotless小组:
https://groups.google.com/forum/?fromgroups#!topic/dotless/j-8OP1dNjUY

这个解决方案对我有用:
我有两个nuget包:
dotless
dotless adapter for system.web.optimization

web.config我有这样的行

   

请注意,您应该根据需要定义无点参数。

BundleConfig.cs

 public static void RegisterBundles(BundleCollection bundles) { bundles.Add(new LessBundle("~/bundles/styles/").Include( "~/Content/site.less" )); BundleTable.EnableOptimizations = True; //false if you want to debug css } 

Site.less

 /*i have to redefine some bootstrap mixin and variables, so importing bootstrap and extending happings there*/ @import "bootstrap-extends.less"; /* all other needed less should be included here too for example: @import "admin.less"; @import "controls.less"; etc */ body{ } 

site.lessbootstrap-extends.less在Content文件夹中。
bootstrap-extends保存所有需要的@import指令,这些指令通常在~/Content/bootstrap/bootstrap.less列出

我希望这有帮助

你看过LESS束变压器了吗?