Объединение CSS в ASP.NET MVC4 Некоторые на CDN некоторые локально на сервере?

Я изучаю сборку ASP.NET MVC4 System.Web.Optimization, и мне было интересно, как бы вы поделились с обслуживанием некоторых файлов CSS из CDN и другие локальные на сервере?

Это возможно?

Похоже, bundles.UseCdn = true находится на уровне коллекции, а не является настройкой для отдельного пакета.

Любое руководство будет оценено.


person Ken Burkhardt    schedule 09.11.2012    source источник


Ответы (2)


Правильно, сейчас единственная поддержка CDN находится на уровне пакета, у вас не может быть пакета с некоторыми отдельными активами, поступающими из CDN, а некоторые локально в это время. В основном это либо, либо: вы можете использовать пакет cdn с откатом к пакету локального сервера, или весь пакет должен находиться в CDN.

ОБНОВЛЕНИЕ: но чтобы уточнить, у вас могут быть некоторые пакеты на CDN, а некоторые пакеты - локально. Это контролируется CdnPath экземпляра пакета. Обычно, если для отдельного пакета не задан CdnPath, он всегда будет обслуживаться локально.

person Hao Kung    schedule 10.12.2012

На сайте ASP.NET есть некоторая информация об этом:

Следующий код заменяет локальный пакет jQuery на пакет CDN jQuery.

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.
}

В приведенном выше коде jQuery будет запрошен из CDN в режиме выпуска, а отладочная версия jQuery будет загружена локально в режиме отладки. При использовании CDN у вас должен быть резервный механизм на случай сбоя запроса CDN. Следующий фрагмент разметки из конца файла макета показывает сценарий, добавляемый к запросу jQuery в случае сбоя CDN.

Лично я не занимаюсь отладкой кода из jQuery, Knockout или любой другой библиотеки. Я всегда ссылаюсь на ресурс CDN прямо в моем макете. Все скрипты, которые мне нужно перевернуть, я затем объединяю с помощью инфраструктуры MVC.

Мои сайты обычно выглядят примерно так:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" type="text/javascript"></script>
@Scripts.Render("~/content/js/siteName")
person Justin Helgerson    schedule 09.11.2012