5

我正在研究 ASP.NET MVC4。客户端需要从其他域(如 CDN 捆绑)加载所有 javascript 和 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();

正在查看

@Scripts.Render("~/bundles/scripts/")

但它不是从另一个域渲染的。

可能是什么问题呢?

4

2 回答 2

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);

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

有关更多信息,请参阅此捆绑和缩小文章。

于 2014-03-25T21:39:35.390 回答
1

我不关心 cdnPath 东西在捆绑中的工作方式,因为您只能为整个捆绑指定单个文件路径。如果您想设置一个简单的回源 CDN,则执行以下操作要容易得多:

@Scripts.RenderFormat(
    "<script src='http://js.cusomdomainname.com{0}'></script>",
    "~/bundles/scripts/")

如果您有一个包含许多不同文件的捆绑包,无论是否启用了优化,这都会起作用。

这也解决了此处描述的查询参数的问题

于 2014-08-05T04:28:18.643 回答