CDN路径在MVC中的js捆绑中不起作用

Dha*_*ari 4 c# asp.net-mvc cdn asp.net-mvc-4 bundling-and-minification

我正在研究ASP.NET MVC4.客户端需要从捆绑的其他域(如CDN)加载所有javascripts和css.我使用过System.Web.Optimization.

下面是代码.

 var bundle = new ScriptBundle("~/bundles/scripts/");
bundle.Orderer = new AsIsBundleOrderer();
bundle.EnableFileExtensionReplacements = false;
bundle.CdnPath = "http://js.cusomdomainname.com";
bundle.Include("~/Scripts/jquery-1.7.1.min.js",
                "~/Scripts/jquery.unobtrusive-ajax.min.js",
                "~/Scripts/jquery.validate.min.js",
                "~/Scripts/jquery.validate.unobtrusive.min.js");

BundleTable.Bundles.UseCdn = true;
BundleTable.EnableOptimizations = true;
BundleTable.Bundles.Add(bundle);
BundleTable.Bundles.IgnoreList.Clear();
Run Code Online (Sandbox Code Playgroud)

在视图上

@Scripts.Render("~/bundles/scripts/")
Run Code Online (Sandbox Code Playgroud)

但它不是从另一个域渲染.

可能是什么问题呢?

jjo*_*ela 5

此示例显示如何在"发布"模式下从CDN加载资源,在本地从"调试"模式加载资源.

var jqueryCdnPath = "//ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js";
var jqueryBundle = new ScriptBundle("~/bundles/jqueryCdn", jqueryCdnPath)
                       .Include("~/Scripts/jquery-{version}.js");

BundleTable.Bundles.Add(jqueryBundle);
Run Code Online (Sandbox Code Playgroud)

CdnPath是指您想从CDN获取的资源,并Include告知在本地查找的资源.您可以从Web.config更改请求的那个.设置<compilation debug="true"/>为使用本地文件,并<compilation debug="false"/>使用CDN.

有关更多信息,请参阅此Bundling and Minification文章.