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

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

Возможно ли это?

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

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

Ответ 1

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

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

Ответ 2

Сайт 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. Следующий фрагмент разметки из конец файла макета показывает, что script добавлен к запросу 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")