Javascript 何时不使用MVC捆绑?

Javascript 何时不使用MVC捆绑?,javascript,jquery,iis,asp.net-mvc-4,bundle,Javascript,Jquery,Iis,Asp.net Mvc 4,Bundle,我在最近的项目中遇到了一个奇怪的问题。 我在MVC4应用程序中使用控件来利用时间选择器功能。我使用MVC绑定特性绑定了相关的JQuery文件。我发现这在开发环境(VisualStudio2012)中非常有效 但是,当我在IIS上部署该网站时,我开始面临一个奇怪的问题,在该特定包中出现了javascript错误“预期函数”。我可以看到该捆绑包被加载,因为在“脚本”选项卡中选择该捆绑包时,开发人员工具正在显示javascript代码 最后,当我直接引用JQuery文件而不是bundle时,它开始在I

我在最近的项目中遇到了一个奇怪的问题。 我在MVC4应用程序中使用控件来利用时间选择器功能。我使用MVC绑定特性绑定了相关的JQuery文件。我发现这在开发环境(VisualStudio2012)中非常有效

但是,当我在IIS上部署该网站时,我开始面临一个奇怪的问题,在该特定包中出现了javascript错误“预期函数”。我可以看到该捆绑包被加载,因为在“脚本”选项卡中选择该捆绑包时,开发人员工具正在显示javascript代码

最后,当我直接引用JQuery文件而不是bundle时,它开始在IIS上正常工作。虽然这个问题已经解决了,但我现在很好奇,如果绑定了这个特定的文件,那么这个文件会有什么问题,如果MVC绑定确实是一个问题,那么为什么它在开发环境中工作得很好,而不是在IIS中


这方面的任何亮点都值得赞赏。

缩小是一个复杂的过程,通过使用变量名称缩短、空白消除、注释删除等技术使脚本/样式变小。。。它使用ASP.NET Web优化,该优化依赖于WebFeel进行缩小。当然,可能会有问题,但我个人从未注意到这一点

以下是一些不应该使用捆绑的情况

  • 包中只有一个文件。为什么要捆绑
  • 您只使用著名的框架,如JQuery或JQuery UI。不要重新分发已由其他人提供服务的脚本。谷歌/微软/亚马逊/。。。已经为最流行的开源JavaScript库提供了CDN

  • 您的包只需要几个字节。Web性能优化建议限制Web请求的数量。一切都有代价。不是很理想,但有时最好在页面中放入内联脚本

  • 在某些体系结构中。Bundles请求包含用于缓存的唯一标识符。如果捆绑包中的任何文件发生更改,ASP.NET优化框架将生成一个新的令牌,以保证浏览器对捆绑包的请求将获得最新的捆绑包。在使用某些架构时,JS更新可能会很频繁,并且会使所有捆绑包失效
  • 在开发环境上。调试一个包真的很痛苦

随着Cybermaxs的回复,我在发布时也收到了以下回复,以防对访问者有所帮助

绑定所要做的是将单个绑定中的脚本/样式表文件组合到一个请求中,并将其发送到客户端,这样浏览器就可以通过较少的调用来获取所需的脚本文件。 在开发环境中,当您在VisualStudio中进行调试时。除非您指定它这样做,否则它不会执行上述过程。但在生产环境中,当web.config文件中的调试设置为false时。它将开始执行上述过程。
还有其他一些原因。例如,脚本可能有两个版本。一个用于调试,一个用于生产。我遇到了这样一种情况。在我的开发环境中,我引用了脚本的调试版本。但当我把它投入到生产环境中时,一切都进展顺利。敲除脚本文件有一个发布版本,我必须引用该版本,以使所有内容再次正常工作。

可能包含的javascript文件的顺序不正确。即使如此,为什么它在开发环境中可以正常工作?同意所有观点。。非常好的答案和非常有用的细节。。谢谢