绑定中不包括jquery

绑定中不包括jquery,jquery,asp.net-mvc,asp.net-mvc-4,Jquery,Asp.net Mvc,Asp.net Mvc 4,我对项目中jquery的一个小问题感到困惑。该项目是VisualStudio11中的MVC4站点 问题是jQuery没有包含在捆绑包中,在我更新到1.7.2之前它似乎已经工作了,但不能确定 我可以在捆绑文件的顶部看到jQuery文件的注释,但找不到任何代码。所有其他文件似乎都包括在内(我自己的脚本和jqueryui文件) 我尝试了捆绑过滤器并创建了自己的捆绑包,但似乎没有任何效果 我真的很感激任何帮助,因为当页面加载时,所有java脚本都会因为找不到函数而崩溃。如果我只是在正常情况下包含java

我对项目中jquery的一个小问题感到困惑。该项目是VisualStudio11中的MVC4站点

问题是jQuery没有包含在捆绑包中,在我更新到1.7.2之前它似乎已经工作了,但不能确定

我可以在捆绑文件的顶部看到jQuery文件的注释,但找不到任何代码。所有其他文件似乎都包括在内(我自己的脚本和jqueryui文件)

我尝试了捆绑过滤器并创建了自己的捆绑包,但似乎没有任何效果

我真的很感激任何帮助,因为当页面加载时,所有java脚本都会因为找不到函数而崩溃。如果我只是在正常情况下包含java脚本文件,这是可行的

编辑:

Global.asax:

protected void Application_Start()
{
    BundleTable.Bundles.EnableDefaultBundles();
}
var bundle = new Bundle("~/js", new JsMinify());
bundle.AddFile("~/Scripts/jquery-1.7.2.min.js");
bundle.AddFile("~/Scripts/jquery-ui-1.8.19.min.js");
bundle.AddFile("~/Scripts/bootstrap.min.js");
BundleTable.Bundles.Add(bundle);
_Layout.cshtml:

<script src="@System.Web.Optimization.BundleTable.Bundles.ResolveBundleUrl("~/Scripts/js")"></script>
<script src="@System.Web.Optimization.BundleTable.Bundles.ResolveBundleUrl("~/myBundle")"></script>
<script src="~/Scripts/jquery.validate.js"></script>
然后改成这个,这次代码不在了

(function Test(){  })
wierd的问题是其他jQuery文件,比如UI文件,不会被删除,它们的方式是一样的

编辑:似乎这是有意的

更新2:

测试了更多的文件,发现哪个文件会断开,如果我在自定义包中包含这些文件中的任何一个,它都会断开

  • jquery.validate.js
  • jquery.validate.unobtrusive.js
  • jquery.unobtrusive-ajax.min.js
在他们面前,我有这些,他们工作没有任何错误

  • jquery-1.7.2.min.js
  • jquery-ui-1.8.19.min.js
  • bootstrap.min.js
它仍然是wierd,如果我在脚本中使用
正常地包含这些文件,它们会正常工作,不会出现错误

尽管如此,如果我捆绑工作文件,然后像往常一样添加非工作文件,它们仍然会中断

_Layout.cshtml:

<script src="@System.Web.Optimization.BundleTable.Bundles.ResolveBundleUrl("~/Scripts/js")"></script>
<script src="@System.Web.Optimization.BundleTable.Bundles.ResolveBundleUrl("~/myBundle")"></script>
<script src="~/Scripts/jquery.validate.js"></script>
编辑:似乎捆绑的jquery文件中发生了一些变化,这使得验证插件中断


解决问题

我试图添加旧文件,在更新之前,它的工作!设法发现是NuGet的新jQueryUI1.8.19崩溃了

我直接从他们的网站下载了jQueryUI,并改用了它,它成功了

因此,似乎jquery ui nuget版本中的某些内容发生了更改,捆绑正在拾取并更改/删除它,因此它会中断


该怪哪一部分?jQuery UI NuGet包还是mvc4捆绑?捆绑问题有解决方案吗?

我认为
EnableDefaultBundles()
试图包含jQuery的特定版本,因此如果您说您已经升级了它(并且可能删除了旧版本),我会冒昧地猜测,MVC正在尝试捆绑一个不再存在的文件

您必须放弃使用
EnableDefaultBundles()
,或者至少编译一个额外的bundle并将其包括在内

你说你已经尝试创建自己的,但是你能再试一次吗?也许以下几点会有所帮助:

Bundle myJSBundle = new Bundle("~/MyJSBundle", typeof(JsMinify));
myJSBundle.AddDirectory("~/Scripts", "*.js", false);
BundleTable.Bundles.Add(myJSBundle);
显然,要改变路径等等来匹配你自己的项目。然后将其包括在页面上,如:

<script src="@Url.Content("~/MyJSBundle")" type="text/javascript"></script>


来源:

解决问题

我试图添加旧文件,在更新之前,它的工作!设法发现是NuGet的新jQueryUI1.8.19崩溃了

我直接从他们的网站下载了jQueryUI,并改用了它,它成功了

因此,似乎jquery ui nuget版本中的某些内容发生了更改,捆绑正在拾取并更改/删除它,因此它会中断


该怪哪一部分?jQuery UI NuGet包还是mvc4捆绑?还有捆绑问题的解决方案吗?

你能给我们看一下global.asax中的代码吗?你的捆绑是在那里初始化的?@SteveHobbs添加了我提到捆绑的代码。这可能会有帮助,谢谢,但没有用。我看到jQuery文件的注释,版本是正确的,但是代码是正确的。如果你在页面上像正常一样包含脚本,我假设一切都正常吗?是的,很抱歉没有在问题中包含脚本。添加了更多信息到问题中,如果它有助于MVC4,我们不再需要使用
@Url.Content(“.
,我们可以简单地使用
有趣的发现。我要做的是向connect网站提交一些反馈,并参考这个问题,看看它是否有任何作用。-还可以看看“已知问题”页面查看是否包含任何内容-这是一个相当烦人的问题!此外,fwiw jQueryUI1.8.18NuGet包与bundler配合使用也很好。