首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >jQuery UI手风琴在MVC 4调试模式下工作,但不在发行版中

jQuery UI手风琴在MVC 4调试模式下工作,但不在发行版中
EN

Stack Overflow用户
提问于 2013-09-27 12:35:33
回答 1查看 2.2K关注 0票数 0

我在一个ASP.NET MVC 4应用程序上工作。

我更新了项目中的jQuery、jQuery UI和所有其他nuget包。构建并运行它,以确保没有出现任何问题。一切顺利,所以我连续发展了几天。

过了一会儿,我把这个项目发布到一个测试服务器上,我必须看看它在Ipad、Iphone等上的外观,然后我意识到jQuery手风琴停止工作了。

它呈现,但不响应单击。这适用于所有浏览器。我觉得这很奇怪,因为唯一的区别是,我在发布模式中应用了mode,据我了解,它要么缩小了jQuery文件,要么选择了小型化的版本(后者可能是在使用nuget更新时添加的)。

jQuery版本是: 2.0.3 jQuery版本是: 1.10.3

在Chrome console中,错误内容如下:

未定义的TypeError:无法读取未定义的属性“safari”

好的,所以我意识到这可能是我的一个jQuery程序集引用$.browser的结果,该引用显然是在jQuery 1.9中删除的。

然而,它在调试模式下工作(使用非小型化版本)这一事实使我认为可能不是这样。我几乎可以认为这是一个小版本的问题,但这也不应该是不可能的。

有人知道为什么会发生这种事吗?知道怎么解决吗?

根据要求更新,我附加了大部分代码。奇怪的是,这是在调试模式下工作,而不是在发布。我不明白为何会有任何重大的改变会导致这个问题:

_Layout.cshtml

Bundleconfig.cs

视图(它调用部分视图)

局部观点

jquery代码

Chrome中的javascript错误

镀铬错误的更大视图

只是想补充一下。在发布这篇文章之后,我删除了现代化的重复加载( telerik自定义一个是在我没有注意到的情况下添加的)。这个问题仍然存在。

更新2 I关闭了邦德莱翁图中的优化。

代码语言:javascript
运行
复制
BundleTable.EnableOptimizations = false;

这让我能够看到jquery中抛出错误的是什么,而且它看起来确实是被删除的$.browser。它似乎实际上加载了两个旧版本的jquery (当前+ 1.6.4和1.7.1)以及新版本和两个版本的jquery(当前+ 1.8.16),最后一个版本抛出了一个错误。这些文件中没有一个加载在我的解决方案或文件文件夹中。

这似乎是一个出版问题,但掩盖了捆绑和缩小.我会试着解决这个问题,看看它是否有效。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-09-30 12:56:05

好吧,这根本不是代码本身的问题,我学到了一些可能对其他人有帮助的新东西。

设置

代码语言:javascript
运行
复制
BundleTable.EnableOptimizations = false;

帮助我解决了这个问题。

显然,Visual中的Asp.Net MVC 4捆绑了它发布的文件夹中的每个脚本,而不是解决方案文件夹中的脚本。我一点也没想过.但回想起来,这是有意义的。

与VS默认发布设置不删除不等于发布的文件的事实相结合,意味着当删除旧版本的Jquery并添加新版本时,旧的仍然保留在服务器上。

使用{version}为jquery选择添加默认绑定,就会有一个不可读的jquery文件抛出错误。在禁用捆绑和小型化之前,很明显,在这种情况下,我加载了3个版本的Jquery:

在此之前

之后

解决方案是什么?简单,只需在发布向导中展开一个名为“文件发布选项”的设置,并检查“移除其他文件.”:

谢谢你的建议。它帮助我寻找正确的地方,但我无法想象这是一个问题。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19050923

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档