我有以下ASP.NET MVC捆绑包:
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"/>
最佳答案
我认为按照documentation的说明将EnableOptimizations
设置为false
时,您不能更改文件扩展名...
除非EnableOptimizations为true或将Web.config文件的编制元素中的debug属性设置为false,否则文件将不会被捆绑或缩小。此外,将不使用文件的.min版本,将选择完整的调试版本。 EnableOptimizations会覆盖Web.config文件中编译元素中的debug属性。
这意味着编译模式和EnableOptimizations
属性将定义是否捆绑和缩小这些资源。在您的情况下,当您将EnableOptimizations
设置为false
时,优化引擎将不会对这些资源进行任何转换,也不会完全按照您在此处定义的方式呈现它们。
lessBundle.Include("~/CSS/Header.less",
"~/CSS/Footer.less");
因此,输出html(在razor的帮助下)将呈现以下链接...
<link href="/CSS/Header.less" rel="stylesheet"/>
<link href="/CSS/Footer.less" rel="stylesheet"/>
这是默认的行为,如果您不想做任何花哨的事情,没有什么可以阻止您窥视asp.net stack ...这是开源的,并实现了您想要的行为
更新资料
实际上,Optimization Framework的Source是一个单独的扩展,您可以找到here