我们正在研究ASP.NET MVC 4的新捆绑功能,并且想知道捆绑从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") );
有任何想法吗?
解决方法
首先,这取决于您是否可以访问CDN,您可以上传自己的文件,或者如果您正在使用,例如,Google的CDN可以获取像jQuery这样的外部库.
如果您从CDN中提取文件并将其捆绑在一起,您将无法使用CDN的优势,除非您可以将新的捆绑文件上传到CDN.
例如,如果您从Google的CDN获取jQuery和jQuery UI,并捆绑它们,那么您将不再使用Google的CDN,而是提供本地资源(创建的包).
您可能已经减少了请求数量,但是,除了Google的CDN(用户浏览器已经被高速缓存的高可用性)之外,还有2个请求,您的服务器有一个请求(不太可能被缓存).
所以简而言之,我会说从CDN将文件捆绑在一起是没有任何优势的,但是将捆绑的文件上传到CDN是不同的.
请注意,尽管如此,可以使用CDN使用捆绑包:
看看this article的“使用CDN”部分
编辑:这是一篇文章,解释什么时候使用CDN或为什么,比我的答案更深一点http://www.kendoui.com/blogs/teamblog/posts/13-11-07/know-when-to-cdn.aspx