asp.net MVC中的多个CDN包

use*_*080 2 asp.net-mvc bundle angularjs

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

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;
Run Code Online (Sandbox Code Playgroud)

但我一直得到"角度未定义"..当我查看源时,页面只加载主CDN网址: <script src="https://ajax.googleapis.com/"></script>

我也尝试设置debug = false.

我究竟做错了什么 ?

Mar*_*Ban 5

cdnHost参数指的是捆绑包存储在内容传送网络中时的备用URL.cdn boundle应该作为一个文件加载,并且应该包含在cdn上上传的所有文件的组合内容(仅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"));
Run Code Online (Sandbox Code Playgroud)

基本上你有三个选择:

  • 为每个资源"〜/ ajax/libs/angularjs/1.3.0-beta.17/angular.js"定义多个捆绑包,并在cdn上托管该版本
  • 不要使用cdnHost参数
  • 手动组合所有文件并在自定义cdn上传它们然后使用此cdn作为cdnHost