当EnableOptimizations = false时,输出.less作为.css

时间:2014-09-01 07:45:01

标签: css asp.net-mvc less bundling-and-minification dotless

我有以下ASP.NET MVC Bundle:

var lessBundle = new Bundle("~/bundles/common.css");

lessBundle.Include("~/CSS/Header.less",
                   "~/CSS/Footer.less");

lessBundle.Transforms.Add(new LessTransform());

bundles.Add(lessBundle);

BundleTable.EnableOptimizations = true将{捆绑在一起时,按预期捆绑在一起,然后输出为:

<link href="/bundles/common.css?v=xxxx-xxxx-xxxx-xxxx" rel="stylesheet"/>

BundleTable.EnableOptimizations = false输出为:

<link href="/CSS/Header.less" rel="stylesheet"/>
<link href="/CSS/Footer.less" rel="stylesheet"/>

有没有办法更改此项,以便文件扩展名显示为.css而不是.less

因此:

<link href="/CSS/Header.css" rel="stylesheet"/>
<link href="/CSS/Footer.css" rel="stylesheet"/>

1 个答案:

答案 0 :(得分:1)

EnableOptimizations设置为false EnableOptimizations时,我认为您无法更改文件扩展名。

  

除非EnableOptimizations为true或者Web.config文件中的编译元素中的debug属性设置为false,否则不会捆绑或缩小文件。此外,将不使用.min版本的文件,将选择完整的调试版本。 EnableOptimizations会覆盖Web.config文件中编译元素中的debug属性

这意味着编译模式和EnableOptimizations属性将定义是否捆绑和缩小这些资源。在您的情况下,当您将false设置为lessBundle.Include("~/CSS/Header.less", "~/CSS/Footer.less"); 时,优化引擎将不会对这些资源进行任何转换,并将它们完全呈现在您在此处定义的内容...

<link href="/CSS/Header.less" rel="stylesheet"/>
<link href="/CSS/Footer.less" rel="stylesheet"/>

因此输出html(在razor的帮助下)将呈现以下链接......

{{1}}

这是默认行为,如果你不想做任何花哨的事,没有什么可以阻止你偷看documentation ...这是一个非常值得开源并实现你想要的行为

更新

实际上,优化框架的来源是一个单独的扩展,您可以找到asp.net stack