我期待到ASP.NET MVC4 System.Web.Optimization捆綁,並想知道你將如何去從CDN和別人服務了一些CSS文件當地到服務器?ASP.NET MVC4捆綁CSS一些CDN上的某些本地服務器?
這可能嗎?
看起來像bundles.UseCdn = true處於集合級別而不是單個捆綁軟件的設置。
任何指導,將不勝感激。
我期待到ASP.NET MVC4 System.Web.Optimization捆綁,並想知道你將如何去從CDN和別人服務了一些CSS文件當地到服務器?ASP.NET MVC4捆綁CSS一些CDN上的某些本地服務器?
這可能嗎?
看起來像bundles.UseCdn = true處於集合級別而不是單個捆綁軟件的設置。
任何指導,將不勝感激。
正確的,現在唯一的CDN支持是在每捆的水平,你不能有一些個人資產從CDN以及一些本地來捆綁此時。基本上它可以是:或者:你可以讓軟件包使用cdn回退到本地服務器的軟件包,或者整個軟件包必須位於CDN上。
更新:但要澄清,你可以在CDN和一些本地捆綁包。這由捆綁實例上的CdnPath控制。基本上,如果在單個捆綁包上沒有設置CdnPath,它將始終在本地提供服務。
的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")