我已经在生产中部署了我的应用并预编译了资产管道,因此我的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
我不确定如何解决这个问题,任何想法?
提前致谢
答案 0 :(得分:3)
您所包含的内容是尝试阅读jQuery.browser
的msie
属性。但是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(可能是旧版本,如果在你合并之前这是有用的话)。