Javascript在生产中不起作用
我已经在生产环境中部署了我的应用程序,并预编译了资产管道,因此我的Javascript在生产中不起作用,javascript,jquery,ruby-on-rails,asset-pipeline,Javascript,Jquery,Ruby On Rails,Asset Pipeline,我已经在生产环境中部署了我的应用程序,并预编译了资产管道,因此我的application.js包含了所有内容 虽然在开发过程中(文件被分割)一切正常,但在生产过程中它不再工作了,工具提示和一切都不再工作了 我在chrome控制台中看到的唯一问题是: Uncaught TypeError: Cannot read property 'msie' of undefined 它提到了包含错误的行: jquery.js:9789 尽管第9789行的application.js(预编译)是空的,并且
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*
I只有两次出现:
config/recipes/templates/nginx_configuration.erb
vendor/assets/javascripts/jquery_ba-bbq.min.js
我不知道如何解决这个问题,有什么想法吗
提前感谢您正在尝试读取的
msie
属性。但是jQuery不再有jQuery.browser
符号(它在v1.3中被弃用,在v1.9中被删除)
除了提到jQuery1.10.2(未缩小)有那么多行之外,我无法解释行号。至于文件名,我假设您的HTML或application.js
中的内容,或者您正在加载的另一个脚本正在加载jquery.js
。开发工具中Chrome的网络选项卡应该告诉您正在加载什么jquery.js
因此,解决方案是找出您正在使用的插件或类似插件试图使用jQuery.browser.msie
(或$.browser.msie
)并处理它与jQuery不再兼容的事实。您已经基本上完成了,并找到了jquery\u ba-bbq.min.js
另一件事是找到并处理任何东西,包括
jquery.js
,如果你的应用程序.js
(可能是一个较旧的版本,如果它在你组合东西之前工作的话)。你包括的东西是试图读取的msie
属性。但是jQuery不再有jQuery.browser
符号(它在v1.3中被弃用,在v1.9中被删除)
除了提到jQuery1.10.2(未缩小)有那么多行之外,我无法解释行号。至于文件名,我假设您的HTML或application.js
中的内容,或者您正在加载的另一个脚本正在加载jquery.js
。开发工具中Chrome的网络选项卡应该告诉您正在加载什么jquery.js
因此,解决方案是找出您正在使用的插件或类似插件试图使用jQuery.browser.msie
(或$.browser.msie
)并处理它与jQuery不再兼容的事实。您已经基本上完成了,并找到了jquery\u ba-bbq.min.js
另一件事是找到并处理任何东西,包括
jquery.js
,如果你的应用程序.js
(可能是一个较旧的版本,如果它在你组合东西之前工作的话)。你包括的东西是试图读取的msie
属性。但是jQuery不再有jQuery.browser
符号(它在v1.3中被弃用,在v1.9中被删除)
除了提到jQuery1.10.2(未缩小)有那么多行之外,我无法解释行号。至于文件名,我假设您的HTML或application.js
中的内容,或者您正在加载的另一个脚本正在加载jquery.js
。开发工具中Chrome的网络选项卡应该告诉您正在加载什么jquery.js
因此,解决方案是找出您正在使用的插件或类似插件试图使用jQuery.browser.msie
(或$.browser.msie
)并处理它与jQuery不再兼容的事实。您已经基本上完成了,并找到了jquery\u ba-bbq.min.js
另一件事是找到并处理任何东西,包括
jquery.js
,如果你的应用程序.js
(可能是一个较旧的版本,如果它在你组合东西之前工作的话)。你包括的东西是试图读取的msie
属性。但是jQuery不再有jQuery.browser
符号(它在v1.3中被弃用,在v1.9中被删除)
除了提到jQuery1.10.2(未缩小)有那么多行之外,我无法解释行号。至于文件名,我假设您的HTML或application.js
中的内容,或者您正在加载的另一个脚本正在加载jquery.js
。开发工具中Chrome的网络选项卡应该告诉您正在加载什么jquery.js
因此,解决方案是找出您正在使用的插件或类似插件试图使用jQuery.browser.msie
(或$.browser.msie
)并处理它与jQuery不再兼容的事实。您已经基本上完成了,并找到了jquery\u ba-bbq.min.js
另一件事是找到并处理任何东西,包括
jquery.js
,如果你将jquery烘焙到你的应用程序.js
(可能是一个旧版本,如果它在你组合东西之前工作的话)。另一个选择是使用jquery迁移插件(如果可能)-,特别是因为错误是由第三方jquery_ba-bbq JS引起的,而不是OP。我不认为这是一个修复/解决方案,但让代码正常工作只是暂时的。@Ian:说得好。但是如果OP认为jQuery已经在application.js
中,而jQuery.js
正在加载,那就需要整理一下。由于某种原因,browser
被弃用并删除。:-)是的,我不完全理解OP在application.js中的意思(我不知道资产管道),但你是对的,另一个jquery f