Ruby on rails 当我运行rake资产时:precompilegot';找不到文件';jquery';在application.js on/=require jquery中

Ruby on rails 当我运行rake资产时:precompilegot';找不到文件';jquery';在application.js on/=require jquery中,ruby-on-rails,ruby,ruby-on-rails-3.2,Ruby On Rails,Ruby,Ruby On Rails 3.2,当我跑的时候 bundle exec rake assets:precompile 我得到 couldn't find file 'jquery' 在application.js联机中: //= require jquery 轨道3.2.2。原因是什么?我敢说,你的应用程序中没有jquery.js文件。如果它不在app/assets或vendor/assets或lib/assets中,请将其添加到其中一个——或者如果您使用的是jquery rails gem,请按照说明操作。如果您在

当我跑的时候

bundle exec rake assets:precompile 
我得到

couldn't find file 'jquery'  
在application.js联机中:

//= require jquery

轨道3.2.2。原因是什么?

我敢说,你的应用程序中没有jquery.js文件。如果它不在app/assets或vendor/assets或lib/assets中,请将其添加到其中一个——或者如果您使用的是jquery rails gem,请按照说明操作。

如果您在生产环境中运行,则必须注释掉该行

Bundler.require(*Rails.groups(:assets => %w(development test)))
并取消对以下内容的注释

Bundler.require(:default, :assets, Rails.env)
因为默认情况下,GEM文件中指定的“资产”组中包含的GEM不会添加到生产环境中


这让我陷入了一种类似的情况:我在生产环境中运行预编译,但Uglifier不断向我抛出一个“找不到jquery错误”,但在开发过程中进行了干净的编译。

它不应该出现在lib/assets或vendor/assets中,因为在Gemfile:gem'jquery-rails'中,您实际上没有提到您正在使用gem,但既然您现在已经完成了“捆绑安装”,如果是,它是否成功完成了?是的,对不起。捆绑包安装已成功完成。如果我从development.rb中取消对Bundler.require(*Rails.groups(:assets=>%w(development test))的注释-它在本地处理,但在生产中没有处理。请检查您的rvm/rbenv,查看您的GEMS,这部分是正确答案。我将jquery rails移出了assets组,一切又正常了。
bundle exec rake assets:precompile
相当于
bundle exec rake assets:precompile:all rails\u ENV=production rails\u GROUPS=assets
,这意味着它将自动包含GEM文件中的资产组。无需更改Bundler.require行。