我一直在尝试将所有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;
但我一直得到“angular is undefined”..当我查看源代码时,页面只会加载主CDN网址:<script src="https://ajax.googleapis.com/"></script>
我也尝试设置debug = false。
我做错了什么?
答案 0 :(得分: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"));
基本上你有三个选择:
答案 1 :(得分:1)
您可以使用jsdelivr(请参阅https://github.com/jsdelivr/jsdelivr)。
例如,如果要捆绑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"));