【问题标题】:ASP.Net MVC Bundles and MinificationASP.Net MVC 捆绑和缩小
【发布时间】:2013-02-11 16:14:38
【问题描述】:

从开发环境转移到生产环境时,我在缩小 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..

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

【问题讨论】:

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


    【解决方案1】:

    您有几个选择,您可以将 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);
    

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

    【讨论】:

    • 鲁迪对不起!我错误地编辑了您的回复而不是我的(我错误地遗漏了一些代码并按下“编辑”来更改它。我的错;(
    • 谢谢。这两种方法我都试过了,但是由于某种原因在发布模式下构建时它似乎仍然缩小了它
    • Rudis 解决方案应该可以工作。如果您构建一个基本的 Bundle 而不指定任何转换,它只会按原样打包文件,所以这绝对不应该缩小您的包。
    • 对于包中的文件“x.js”,确保文件夹中没有“x.min.js”文件
    • @stooboo 为什么不呢?一个普通的 Bundle 只会包含它所提供的内容。
    【解决方案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);
    

    【讨论】:

      猜你喜欢
      • 2013-02-21
      • 2017-12-12
      • 2014-04-16
      • 2014-11-26
      • 2018-05-11
      • 2012-10-02
      • 2013-10-02
      • 1970-01-01
      • 2013-05-16
      相关资源
      最近更新 更多