ASP.Net MVC捆绑和缩小

时间:2013-02-11 16:14:39

标签: asp.net-mvc asp.net-mvc-4

当从开发环境转移到生产环境时,我的javascript文件被缩小的方式遇到了一些问题。似乎有些人没有正确缩小,所以我一直在四处寻找一种不缩小特定束的方法。

    public static void RegisterBundles(BundleCollection _bundles)
    {
        _bundles.Add(new ScriptBundle("~/bundles/toNotMinify").Include(
            "~/Scripts/xxxxxx.js"
            ));

        _bundles.Add(new ScriptBundle("~/bundles/toMinify").Include(
            "~/Scripts/yyyyy.js"
            ));
        etc..

这是我的bundle配置类中的基本布局。我希望找到一种方法,让我的所有捆绑包都缩小,除了第一个。这可能吗?到目前为止,我发现实现类似目标的唯一解决方案是全局关闭缩小。

2 个答案:

答案 0 :(得分:13)

您有几个选项,您可以将ScriptBundle替换为Bundle,如下例所示:

_bundles.Add(new Bundle("~/bundles/toNotMinify").Include(
    "~/Scripts/xxxxxx.js"
));

..或者您可以禁用新创建的包上的所有转换,如下所示:

var noMinify = new ScriptBundle("~/bundles/toNotMinify").Include(
    "~/Scripts/xxxxxx.js"
);
noMinify.Transforms.Clear();
_bundles.Add(noMinify);

显然,第一个解决方案更漂亮:)

答案 1 :(得分:2)

您只需声明一个通用的Bundle对象并指定所需的转换:

var dontMinify = new Bundle("~/bundles/toNotMinify").Include(
                                        "~/Scripts/xxxxx.js");
            bundles.Add(dontMinify);

            var minify = new Bundle("~/bundles/toNotMinify").Include(
                "~/Scripts/yyyyyy.js");
            minify.Transforms.Add(new JsMinify());
            bundles.Add(minify);