ASP.NET MVC4捆绑CSS有些在CDN上有些本地服务器吗?

Ken*_*rdt 11 css cdn asp.net-mvc-4 bundling-and-minification asp.net-optimization

我正在研究ASP.NET MVC4 System.Web.Optimization捆绑,并想知道如何从CDN其他本地服务器提供一些CSS文件

那可能吗?

它看起来像bundles.UseCdn = true在集合级别而不是单个包的设置.

任何指导将不胜感激.

Jus*_*son 19

ASP.NET网站有一些信息,这一点:

以下代码使用CDN jQuery包替换本地jQuery包.

public static void RegisterBundles(BundleCollection bundles)
{
    //bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
    //            "~/Scripts/jquery-{version}.js"));

    bundles.UseCdn = true;   //enable CDN support

    //add link to jquery on the CDN
    var jqueryCdnPath = "http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.7.1.min.js";

    bundles.Add(new ScriptBundle("~/bundles/jquery",
                jqueryCdnPath).Include(
                "~/Scripts/jquery-{version}.js"));

    // Code removed for clarity.
}
Run Code Online (Sandbox Code Playgroud)

在上面的代码中,将在发布模式下从CDN请求jQuery,并且将在调试模式下本地获取jQuery的调试版本.使用CDN时,如果CDN请求失败,您应该有一个回退机制.布局文件末尾的以下标记片段显示在CDN失败时添加到请求jQuery的脚本.

就个人而言,我没有发现自己从jQuery,Knockout或任何其他库调试代码.我总是直接在我的布局中引用CDN资源.我需要自己滚动的任何脚本然后使用MVC框架进行捆绑.

我的网站通常看起来像这样:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" type="text/javascript"></script>
@Scripts.Render("~/content/js/siteName")
Run Code Online (Sandbox Code Playgroud)


Hao*_*ung 9

正确,现在唯一的CDN支持是在每个捆绑级别上,你不能拥有来自CDN的一些单独资产和一些本地的资产.基本上它是或者:你可以让bundle使用cdn with fallback到本地服务器的bundle,或者整个bundle必须在CDN上.

更新:但要澄清一下,你可以在CDN和一些本地捆绑包上有一些捆绑包.这是由bundle实例上的CdnPath控制的.基本上,如果单个包上没有设置CdnPath,它将始终在本地提供.