Связывание и минификация mvc4 - используйте стандартные минимизированные библиотеки jquery

Я понимаю принцип связывания и минимизации с mvc4, но я хотел бы использовать базовые предварительно минимизированные библиотеки для таких элементов, как jquery и другие крупные и распространенные библиотеки.

Таким образом, в моей производственной версии вместо ссылки на такой пакет:

bundles/jquerymobile?v=N1H63GRw6_-3057BORWSW60RX5rLWde08XZf8PiKQaE1

Я бы предпочел использовать стандартную версию jquery min, например:

jquery-1.8.2.min.js

Затем мой следующий шаг будет состоять в том, чтобы разрешить замену этих стандартизированных библиотек на CDN-хосты, такие как те, которые google и другие большие cdn делают доступными.

Итак: две части к этому вопросу:

-Как я могу дать указание сборщику напрямую включить предварительно минимизированный файл, не связанный с другими?

-Как я могу создать ссылку на CDN-версию этого файла вместо ссылки на локальную?

1 ответ

Я бы предпочел использовать стандартную версию jquery min, например: jquery-1.8.2.min.js

Зачем? Если вы связываете его с остальными сценариями, он все еще сокращен, и это на один HTTP-запрос меньше. Нет никакой функциональной разницы, если вы связываете этот скрипт с другими. Объединение этого просто уменьшает HTTP-запросы (что, вероятно, более важно, чем минимизация).

Как я могу поручить упаковщику напрямую включать предварительно минимизированный файл, не связанный с другими?

Вы не включаете сценарий на странице, как обычно. Если вы хотите использовать упаковщик исключительно для минимизации вашего сценария, то создайте отдельный пакет только с одним этим сценарием.

Как создать ссылку на версию этого файла, размещенную на 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.
}
Другие вопросы по тегам