Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc asp.net MVC中的多个CDN包_Asp.net Mvc_Angularjs_Bundle - Fatal编程技术网

Asp.net mvc asp.net MVC中的多个CDN包

Asp.net mvc asp.net MVC中的多个CDN包,asp.net-mvc,angularjs,bundle,Asp.net Mvc,Angularjs,Bundle,我一直在尝试将CDN中的所有js文件捆绑到一个单独的捆绑包中,如下所示: bundles.UseCdn = true; string cdnHost = "https://ajax.googleapis.com/"; bundles.Add(new ScriptBundle("~/bundles/angularCDN", cdnHost).Include( "~/ajax/libs/angularjs/1.3.0-beta.17/angular.j

我一直在尝试将CDN中的所有js文件捆绑到一个单独的捆绑包中,如下所示:

bundles.UseCdn = true;
string cdnHost = "https://ajax.googleapis.com/";
bundles.Add(new ScriptBundle("~/bundles/angularCDN", cdnHost).Include(
                        "~/ajax/libs/angularjs/1.3.0-beta.17/angular.js",
                        "~/ajax/libs/angularjs/1.3.0-beta.17/angular-cookies.js",
                        "~/ajax/libs/angularjs/1.3.0-beta.17/angular-route.js"));
BundleTable.EnableOptimizations = true;
但我一直觉得“角度是不确定的”。。当我查看源代码时,页面只加载主CDN url:

我还尝试设置debug=false


我做错了什么?

cdnHost参数指的是捆绑包存储在内容交付网络中时的备用URL。cdn边界应该作为一个文件加载,并且应该包含上传到cdn上的所有文件的组合内容(将只是
https://ajax.googleapis.com/
在您的情况下):

基本上你有三个选择:

  • 定义多个捆绑包,每个资源一个“~/ajax/libs/angularjs/1.3.0-beta.17/angular.js”和托管在cdn上的版本
  • 不要使用cdnHost参数
  • 手动合并所有文件并将其上载到自定义cdn上,然后将此cdn用作cdnHost
您可以使用JSDeliver(请参阅)

例如,如果要捆绑AngularJS 1.2.19,可以使用以下命令:

 var angularBundleCdnPath = "//cdn.jsdelivr.net/g/angularjs@1.2.19(angular.min.js+angular-route.min.js+angular-animate.min.js+angular-cookies.min.js)";

 bundles.Add(new ScriptBundle("~/bundles/angular",
                    angularBundleCdnPath).Include(
                    "~/Scripts/angular.js",
                    "~/Scripts/angular-animate.js",
                    "~/Scripts/angular-route.js",
                    "~/Scripts/angular-cookies.js"));

“cdn边界应该作为一个文件加载,并且应该包含上传到cdn上的所有文件的组合内容”-->真的吗?太不方便了。@MajoB如果是那样的话.Include()会做什么?
 var angularBundleCdnPath = "//cdn.jsdelivr.net/g/angularjs@1.2.19(angular.min.js+angular-route.min.js+angular-animate.min.js+angular-cookies.min.js)";

 bundles.Add(new ScriptBundle("~/bundles/angular",
                    angularBundleCdnPath).Include(
                    "~/Scripts/angular.js",
                    "~/Scripts/angular-animate.js",
                    "~/Scripts/angular-route.js",
                    "~/Scripts/angular-cookies.js"));