如何在不合并文件的情况下启用Bundle转换

本文关键字:情况下 启用 Bundle 转换 文件 合并 | 更新日期: 2023-09-27 18:10:01

. NET MVC项目我正在工作有两个应用程序键相对于捆绑过程:AppKeys.ApplyMinifyingTransformation显示是否.css.js文件应该被最小化和合并,AppKeys.ApplyStaticFilesTransformations显示是否一些文件内容转换应该应用。这些旗帜的不同组合将在不同的舞台上使用。下面是RegisterBundles方法的简化版本:

public static void RegisterBundles(BundleCollection bundles)
{
    BundleTable.EnableOptimizations = AppKeys.ApplyMinifyingTransformationAndBlockJs || 
            AppKeys.ApplyStaticFilesTransformations;
    var lessStyles = new Bundle("~/Bundles/Styles/")
        .IncludeDirectory("~/Path-to-css", "*.css", true);
    var postProcessors = AppKeys.ApplyStaticFilesTransformations 
        ? new[] {new StaticFilesPostProcessor()} 
        : new IPostProcessor[] {};
    var transformer = AppKeys.ApplyMinifyingTransformationAndBlockJs
        ? new StyleTransformer(new YuiCssMinifier(), postProcessors)
        : new StyleTransformer(postProcessors);
    transformer.CombineFilesBeforeMinification = AppKeys.ApplyMinifyingTransformationAndBlockJs;
    lessStyles.Transforms.Add(transformer);
    bundles.Add(lessStyles);
}

不幸的是,这段代码不能像我希望的那样工作。BundleTable.EnableOptimizations应该是true文件转换工作,但在这种情况下,文件总是合并为一个。

是否有一种方法可以显式地声明我想要启用转换,但不应该合并文件?

如何在不合并文件的情况下启用Bundle转换

根据Web.configcompilation元素的debug属性值进行捆绑和缩小。

<compilation debug="true" targetFramework="4.0"/>

启用后,文件按原样呈现,当启用debug="false"时,文件被捆绑和缩小。

因此,删除显式优化,即删除 行
BundleTable.EnableOptimizations = AppKeys.ApplyMinifyingTransformationAndBlockJs || 
        AppKeys.ApplyStaticFilesTransformations;

在生产环境中部署应用程序时,请记住将debug属性的值更改为false

更多信息在这里http://www.asp.net/mvc/overview/performance/bundling-and-minification.