我有以下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"/>
答案 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