mvc4捆绑和缩小 - 使用标准的缩小jquery库

时间:2012-11-29 21:09:16

标签: jquery .net asp.net-mvc-4 cdn bundling-and-minification

我理解使用mvc4进行捆绑和缩小的原理,但是我想使用基本的预缩小库来处理诸如jquery和其他大型和常用库之类的项目。

因此,在我的生产版本中,而不是像这样引用一个包:

bundles/jquerymobile?v=N1H63GRw6_-3057BORWSW60RX5rLWde08XZf8PiKQaE1

我更喜欢使用标准的jquery min版本,如下所示:

jquery-1.8.2.min.js

然后我的下一步将是允许用CDN托管的那些替换这些标准化的库,例如google和其他大型cdn可用的那些。

所以:这个问题的两个部分:

- 如何指示捆绑包直接包含与其他人分开的预先缩小的文件?

- 如何创建指向此文件的CDN托管版本的链接,而不是引用本地文件?

1 个答案:

答案 0 :(得分:1)

我更喜欢使用标准的jquery min版本,如下所示:jquery-1.8.2.min.js

为什么呢?如果将它与其余脚本捆绑在一起,它仍然会缩小,并且只需少一个HTTP请求。如果将此脚本与其他脚本捆绑在一起,则没有功能差异。捆绑它只会减少HTTP请求(这可能比缩小更重要)。

我如何指示捆绑包直接包含与其他人分开的预先缩小的文件?

你没有,你在页面上包含了正常的脚本。如果您想将Bundler用于缩小脚本的唯一目的,那么只需使用该脚本创建一个单独的包。

如何创建指向此文件的CDN托管版本的链接,而不是引用本地文件?

public static void RegisterBundles(BundleCollection bundles)
{
    //bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
    //            "~/Scripts/jquery-{version}.js"));

    bundles.UseCdn = true;   //enable CDN support

    //add link to jquery on the CDN
    var jqueryCdnPath = "http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.7.1.min.js";

    bundles.Add(new ScriptBundle("~/bundles/jquery",
                jqueryCdnPath).Include(
                "~/Scripts/jquery-{version}.js"));

    // Code removed for clarity.
}