2012-11-14 42 views
13

我們正在尋找到新的捆綁ASP.NET MVC 4功能,如果有任何優勢捆綁CSS文件從CDN服務想知道?捆綁從CDN提供的多個CSS?

是否有一種方法可以捆綁從ASP.NET MVC 4中的CDN提供的多個文件? 這不起作用:

var cdnCssPath = "http://MyCdn/css/";  
bundles.Add(new StyleBundle("~/Content/css", cdnCssPath) 
      .Include("~/Content/site.css") 
      .Include("~/Content/Test1.css") 
      .Include("~/Content/Test2.css") 
      .Include("~/Content/Test3.css") 
      ); 

任何想法?

+0

我一直在尋找同樣的事情,但還沒有找到實現這一點。我們目前使用Talifun腳本破碎機,但這似乎具有相同的侷限性,因爲CDN支持是在一個組上完成的,而不是每個文件。我想這很有道理,因爲沒有直接的方法將單獨的基於CDN的文件捆綁到一個文件中。 – Leather

+0

@Ken Burkhardt我有同樣的問題,如何可以加載多個CSS使用CDN你有任何想法,然後請讓我知道嗎? – coderwill

回答

20

首先,它取決於您是否可以訪問CDN,您可以上傳自己的文件,或者如果您正在使用,例如,Google的CDN可以獲得像jQuery這樣的外部庫。

如果您從CDN提取文件並將其捆綁在一起,除非您能夠將新的捆綁文件上傳到CDN,否則將失去使用CDN的優勢。

例如,如果您從Google的CDN獲取jQuery和jQuery UI並將其捆綁,那麼您不再使用Google的CDN,而是提供本地資源(創建的捆綁包)。 您可能已經減少了請求的數量,但不是2個請求也是谷歌的CDN(它有很高的概率可以被用戶瀏覽器緩存),但有一個請求到您的服務器(這不太可能被緩存)。

因此總之,我認爲將CDN文件捆綁在一起沒有任何優勢,但是將捆綁文件上傳到CDN是不同的。

請注意,這是可能的,雖然使用使用CDN分發包: 看的this article

編輯「使用CDN」的一部分:下面是說明何時使用CDN或不是,爲什麼文章,有點比我的回答更深奧http://www.kendoui.com/blogs/teamblog/posts/13-11-07/know-when-to-cdn.aspx

+1

從閱讀您鏈接的文章可以看出,看起來您的捆綁包中只能有一個文件,如果該捆綁包指向CDN的話。在這裏肯定有一種折衷:通過捆綁多個文件而獲得的HTTP請求數量減少與CDN的緩存/可用性相比....對我來說不是顯而易見的最佳方式! – nixon