ASP.Net MVC ScriptBundle:为什么在从 CDN 检索时指定 jQuery 版本?

ASP.Net MVC ScriptBundle: Why specify jQuery version when retrieving from CDN?

我想使用 CDN 为我的 ASP.Net MVC 应用引用 jQuery。

我不想将应用绑定到 jQuery 的特定版本。

那么,为什么我能找到的每个示例似乎都在 CDN 路径中引用了特定的 jQuery 版本,但随后在 ScriptBundle 的“.Include”中使用了与版本无关的语法?

例如:

var cdnPath = "http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.7.1.min.js";

bundles.Add(new ScriptBundle("~/bundles/jquery", cdnPath)
.Include( "~/Scripts/jquery-{version}.js"));

为什么CDN路径不简单地指向一个目录,其中多个jQuery版本可能驻留然后CDN服务器return最新jQuery 版本(就像我的 MVC 应用程序在本地从包中获取脚本时所做的那样)。

或者,如果这不可能,那么为什么要在 .Include() 方法中使用与版本无关的语法呢?

Jquery 的一些主要版本不向后兼容。例如 jQuery v2 在 IE 6/7/8 上不 运行。所以如果你的项目必须 运行 在那些你将不得不坚持使用版本 1

编辑

Include() 用于本地脚本而不是 CDN 中的脚本。如果由于任何原因无法获取 CDN 脚本,则使用本地脚本。