我们正在研究 ASP.NET MVC 4 的新捆绑功能,并想知道捆绑CSS文件是否有任何优势 从CDN提供?
是否有办法捆绑从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 :(得分:20)
首先,这取决于您是否可以访问可以上传自己文件的CDN,或者如果您正在使用google的CDN来获取外部库,例如jQuery。
如果您从CDN中提取文件并捆绑它们,除非您能够将新的捆绑文件上传到CDN,否则您将失去使用CDN的优势。
例如,如果你从谷歌的CDN获得jQuery和jQuery UI并捆绑它们,那么你就不再使用谷歌的CDN,而是提供本地资源(创建的捆绑包)。 您可能已经减少了请求的数量,但是谷歌的CDN(用户浏览器已经缓存了很高的概率)而不是2个请求,而是对您的服务器有一个请求(不太可能被缓存)。 / p>
所以简而言之,我会说将来自CDN的文件捆绑在一起没有任何好处,但是将捆绑的文件上传到CDN是不同的故事。
请注意,虽然可以使用CDN for bundle使用: 查看this article
的“使用CDN”部分编辑:这是一篇文章,解释了何时使用CDN以及为什么,比我的回答更深入http://www.kendoui.com/blogs/teamblog/posts/13-11-07/know-when-to-cdn.aspx