Связывание и минификация 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.
}