Javascript在Production中不起作用

时间:2014-02-04 18:15:47

标签: javascript jquery ruby-on-rails asset-pipeline

我已经在生产中部署了我的应用并预编译了资产管道,因此我的application.js包含了所有内容。

虽然它在开发中一切正常(文件被拆分)但它在生产中不再起作用,工具提示和一切都不再起作用了。

我在chrome控制台中遇到的唯一问题是:

Uncaught TypeError: Cannot read property 'msie' of undefined 

它提到包含错误的行:

jquery.js:9789

虽然第9789行的application.js(预编译)是空白的,但在我的源代码中,我没有明确包含任何名为jquery.js的源文件,因为jquery包含在application.js中。

我发现jquery_bbq可能是问题,在我运行时:grep -r msie *我只有两次出现:

config/recipes/templates/nginx_configuration.erb
vendor/assets/javascripts/jquery_ba-bbq.min.js

我不确定如何解决这个问题,任何想法?

提前致谢

1 个答案:

答案 0 :(得分:3)

您所包含的内容是尝试阅读jQuery.browsermsie属性。但是jQuery不再具有jQuery.browser符号(在v1.3中已弃用,在v1.9中已删除)。

除了提及jQuery 1.10.2(未缩小版)之外,我无法解释行号。至于文件名,我认为您的application.js或您正在加载的其他脚本中的HTML或其他内容正在加载jquery.js。开发工具中的Chrome网络选项卡应该告诉您正在加载jquery.js

因此解决方案是找出正在尝试使用jQuery.browser.msie(或$.browser.msie)的插件或类似插件,并处理它不再与jQuery兼容的事实。您已经基本完成了这项工作并找到了jquery_ba-bbq.min.js

另一件事是找到并处理包括jquery.js在内的任何内容,如果你在你的application.js中加入了jQuery(可能是旧版本,如果在你合并之前这是有用的话)。