使用MVC4捆绑工具或使用第三部分捆绑js和css

时间:2013-09-19 09:43:56

标签: asp.net-mvc asp.net-mvc-4 bundle minify bundling-and-minification

MVC中包含的捆绑工具是否足够好? 他们有什么理由不使用它吗?

我一直在使用网络形式的squishIt,从来没有遇到任何问题。但是现在我正在进行一个MVC项目,我已经看到MVC拥有自己的捆绑机制。 我应该使用它吗?

可以缩小和gzip吗?它是否像squishIt一样在合并文件上添加任何哈希? 或者是否有其他解决方案使文件在发布时独一无二?

或者还有其他人可以使用吗?

2 个答案:

答案 0 :(得分:0)

回答你的问题

  1. 是的,它缩小了/ gzip
  2. 是的,它添加了一个查询字符串以防止缓存
  3. 而且(不是问题),但Bundling也适用于webforms
  4. 我建议您使用自己感觉最舒服的东西。内置捆绑虽然简单易用,但具有很好的调试/实时部署功能。

    我发现minifier并没有像其他人那样有效地缩小,尽管这通常不是问题,因为它会使用.min文件(如果有的话)。

    假设您的捆绑包包含文件夹中的所有脚本,并且该文件夹包含jquery.1.10.2.jsjquery.1.10.2.min.js,它将在调试模式下使用未分解的文件,它将使用.min版本发布模式。然后,如果删除.min文件,则在发布模式下,捆绑包可能会略大,但最终结果仍然是缩小的捆绑包。

    More Reading on the ASP.NET Bundling

    是的还有其他软件包,例如YUICompressor。你可以搜索NuGet,但我总是使用内置的捆绑,所以不能说它们有多好。

答案 1 :(得分:0)

我发现输出顺序真的很奇怪。 我正在使用这些文件:

       bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
                "~/Content/Script/json2.js",
                "~/Content/Script/jquery-1.10.2.min.js",
                "~/Content/Script/jqueryMobileCustom.js",
                "~/Content/Script/jquery.mobile-1.3.2.min.js"));

下面的输出将是:

    <script src="/Content/Script/jquery-1.10.2.min.js"></script>
    <script src="/Content/Script/json2.js"></script>
    <script src="/Content/Script/jqueryMobileCustom.js"></script>
    <script src="/Content/Script/jquery.mobile-1.3.2.min.js"></script>

那是错的!

但是,如果我将“jquery-1.10.2.min.js”的名称更改为:“jquery.1.10.2.min.js”。它的工作原理应该如此。并按我的要求订购它们。

你知道在使用scriptbundle和include时是否有办法禁用sortorder?或者为什么它甚至会对' - '而不是''做出反应。 '在我的文件中。

我知道它是'BundleFileSetOrdering'函数,但我喜欢用include指定它。