【问题标题】:Bundling multiple versions of Jquery捆绑多个版本的 Jquery
【发布时间】:2013-07-22 08:32:57
【问题描述】:

我有一个使用来自 Nuget 的 jquery 的 ASP MVC 应用程序。

最近我在 NUGET 上升级到了最新版本,目前是 2.0.3。此版本不支持旧版浏览器(特别是 IE8)。

有一个技巧可以绕过它using conditional comments

我的问题是使用捆绑包进行这项工作的最佳方法是什么?目前

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

我已经添加了两个捆绑包一个

bundles.Add(new ScriptBundle("~/bundles/jqueryold").Include(
                    "~/Scripts/jquery-1.9*"));
bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
                    "~/Scripts/jquery-2*"));

然后在布局上

@Scripts.Render("~/bundles/jqueryold")
<![endif]-->
<!--[if gte IE 9]><!-->
@Scripts.Render("~/bundles/jquery")
<!--<![endif]-->

或者有更好的方法吗?欢迎提出建议。

【问题讨论】:

  • 如果你需要支持 ie8 为什么不直接使用 1.* - 2.* 只是一个精简的版本,它删除了对旧浏览器的支持,所以如果你需要使用它是没有意义的支持旧版浏览器
  • @Pete,我想关注 Nuget 上发布的内容的两个原因,并且考虑到大多数客户将使用现代浏览器。因此,对于大多数人来说,包含精简版更有意义。
  • 只是看起来有点额外的下载 - 拥有捆绑包的目的是最大限度地减少最终用户必须下载的文件数量
  • @Pete 认为,您可能会误解,他们的客户只会根据他们使用的 IE 版本收到其中一个捆绑包。所以大多数人只会看到 2+

标签: jquery asp.net-mvc-4


【解决方案1】:

我认为你部分回答了你的问题 所以你可以拥有

bundles.Add(new ScriptBundle("~/bundles/jquery_OLD").Include( "~/Scripts/jquery-1.9.*.js")); 
bundles.Add(new ScriptBundle("~/bundles/jquery").Include( "~/Scripts/jquery-2.*.js"));

您只需要添加两个不同的包名称,一个可以是旧的 jquery,第二个只是 jquery。

【讨论】:

  • 有道理,我已经更新了我的问题以构建您的答案。我不得不对语法做一个小的修改
  • ok 会有jquery兼容性问题吗?使用 jquery 1.11.0 和 1.7.0 时。
猜你喜欢
  • 2019-12-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-09-26
  • 1970-01-01
相关资源
最近更新 更多