jquery 未包含在捆绑中

tre*_*bon 5 asp.net-mvc jquery asp.net-mvc-4

我对我的项目中使用 jquery 的一个小问题感到困惑。该项目是 Visual Studio 11 中的一个 MVC4 站点。

问题是 jQuery 未包含在捆绑包中,并且在我更新到 1.7.2 之前它似乎一直在工作,但不能确定。

我可以在捆绑文件的顶部看到 jQuery 文件的注释,但找不到它的任何代码。尽管似乎包含了所有其他文件(我自己的脚本和 jquery ui 文件)。

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

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

编辑:

全球.asax:

protected void Application_Start()
{
    BundleTable.Bundles.EnableDefaultBundles();
}
Run Code Online (Sandbox Code Playgroud)

_Layout.cshtml:

<script src="@System.Web.Optimization.BundleTable.Bundles.ResolveBundleUrl("~/Scripts/js")"></script>
Run Code Online (Sandbox Code Playgroud)

更新 1:

我在 jQuery 文件中添加了一些代码,捆绑文件在顶部包含了这些代码。

function Test(){ }
Run Code Online (Sandbox Code Playgroud)

然后改成这个了,这次代码没有了。

(function Test(){  })
Run Code Online (Sandbox Code Playgroud)

奇怪的是,其他 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

如果我在脚本中正常包含这些文件并且<script src="~/Scripts/jquery.validate.js"></script>它们按应有的方式工作而没有错误,它仍然很奇怪。

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

_Layout.cshtml:

<script src="@System.Web.Optimization.BundleTable.Bundles.ResolveBundleUrl("~/myBundle")"></script>
<script src="~/Scripts/jquery.validate.js"></script>
Run Code Online (Sandbox Code Playgroud)

全球.asax:

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);
Run Code Online (Sandbox Code Playgroud)

编辑:似乎捆绑的 jquery 文件中的某些内容发生了变化,这使得验证插件中断

解决

我尝试在更新之前添加旧文件,并且它起作用了!设法发现是 NuGet 的新 jQuery UI 1.8.19 崩溃了。

我直接从他们的网站下载了 jquery ui,然后使用了那个,它奏效了!

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

应该怪哪个部分?jQuery UI NuGet 包还是 mvc4 捆绑?有没有解决捆绑问题的方法?

tre*_*bon 3

解决方法

我尝试在更新之前添加旧文件,并且它有效!设法发现崩溃的是 NuGet 的新 jQuery UI 1.8.19。

我直接从他们的网站下载了 jquery ui,并使用了它,它成功了!

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

应该归咎于哪一部分?jQuery UI NuGet 包还是 mvc4 捆绑?那么有没有办法解决捆绑问题呢?