Я использую Angular JS на ASP.NET MVC 4, и я использую пакеты script для загрузки из cdn, а также загрузку с исходного сервера в случае сбоя cdn следующим образом:
var jQuery = new ScriptBundle("~/bundles/scripts/jquery",
"//ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js") // CDN
.Include("~/Scripts/jquery-{version}.js"); // Local fallback
jQuery.CdnFallbackExpression = "window.jQuery"; // Test existence
bundles.Add(jQuery);
и
var angular = new ScriptBundle("~/bundles/scripts/angular",
"//ajax.googleapis.com/ajax/libs/angularjs/1.2.0-rc.2/angular.min.js")
.Include("~/Scripts/angular.js");
angular.CdnFallbackExpression = "window.angular";
bundles.Add(angular);
Довольно легко обнаружить, существуют ли jQuery или AngularJS с помощью window.jQuery и window.Angular соответственно. Механизм связывания ASP.NET оценивает текст CdnFallbackExpression, чтобы увидеть, нужно ли ему возвращаться к исходному серверу.
Однако в более поздних версиях AngularJS другие модули, такие как ngRoute и ngResource, разделяются на свои собственные файлы, которые должны быть загружены по усмотрению разработчиков.
Как определить, загружены ли другие модули AngularJS? Что я могу ввести в консоль, чтобы проверить, удалось ли ngAnimate, ngRoute, ngResource и т.д. Загрузиться с CDN?