回答

9

正確的,現在唯一的CDN支持是在每捆的水平,你不能有一些個人資產從CDN以及一些本地來捆綁此時。基本上它可以是:或者:你可以讓軟件包使用cdn回退到本地服務器的軟件包,或者整個軟件包必須位於CDN上。

更新:但要澄清,你可以在CDN和一些本地捆綁包。這由捆綁實例上的CdnPath控制。基本上,如果在單個捆綁包上沒有設置CdnPath,它將始終在本地提供服務。

18

ASP.NET site has some information一下:

下面的代碼替換本地的jQuery用CDN的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. 
} 

在上面的代碼,jQuery將來自CDN請求而在 釋放模式和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")