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")