部署rails应用程序.JQuery-UI错误

Geo*_*eti 5 jquery-ui ruby-on-rails

我只是在云服务器上部署我的应用程序然后输入错误:

ActionView::Template::Error (couldn't find file 'jquery-ui'
  (in /home/me/.rvm/gems/ruby-1.9.3-p429/gems/activeadmin-0.6.0/app/assets/javascripts/active_admin/base.js:2)):
Run Code Online (Sandbox Code Playgroud)

我之前在共享主机上部署了相同的应用程序,但我之前没有收到此错误.所以我想我在部署中会遗漏一些东西.顺便说一下base.js:

//= require jquery
//= require jquery-ui
//= require jquery_ujs
//= require active_admin/application
Run Code Online (Sandbox Code Playgroud)

在我的app/assets/javascripts/application.js.erb中:

//= require Player/soundmanager2-nodebug-jsmin.js
//= require jquery
//= require jquery.ui.all
//= require jquery_ujs
//= require best_in_place
//= require best_in_place.purr
//= require jquery-fileupload
//= require contextMenu/jquery.contextMenu.js
//= require contextMenu/jquery.ui.position.js
//= require_tree .
//= require_tree ./Player
Run Code Online (Sandbox Code Playgroud)

编辑:在我的Gemfile中:

# Gems used only for assets and not required
# in production environments by default.
group :assets do
  gem 'sass-rails',   '~> 3.2.3'
  gem 'coffee-rails', '~> 3.2.1'

  # See https://github.com/sstephenson/execjs#readme for more supported runtimes
  # gem 'therubyracer', :platforms => :ruby

  gem 'uglifier', '>= 1.0.3'
end

gem 'jquery-rails'
gem 'jquery-fileupload-rails'
gem 'jquery-ui-rails'
Run Code Online (Sandbox Code Playgroud)

GSn*_*der 6

我一直在努力解决同样的问题......

我相信你正在遇到最近在ActiveAdmin和jquery-rails gem 之间创建的头部; 您的配置本身没有任何问题.

jquery-rails曾经包含JavaScript for JQuery UI的副本(但不包括CSS;不确定原因).这就是线下的内容

//= require jquery-ui
Run Code Online (Sandbox Code Playgroud)

在ActiveAdmin的base.js文件中.最近,jquery-rails放弃了它包含的JQuery UI JavaScript,所以上面的行现在什么也没说,导致资产构建错误.安装jquery-ui-rails没有帮助,因为gem重命名文件以便正确的require行

//= require jquery.ui.all
Run Code Online (Sandbox Code Playgroud)

可能是为了避免与以前版本的jquery-rails发生冲突.

不幸的是,至少根据这个问题报告,ActiveAdmin不能简单地在jquery-ui-rails而不是jquery-rails上自行修改自己,并保持与Rails 3.0的向后兼容性.所以解决方案可能会在未来几天内完成.

在此期间,只需请求一个旧版本的jquery-rails,它仍包含Gemfile中的JavaScript for JQuery UI:

gem 'jquery-rails', '<3.0.0'
Run Code Online (Sandbox Code Playgroud)


Dav*_*vid 2

遇到类似的事情,发现gem jquery-ui从group :assets块中删除可以解决这个问题。此外,您会注意到 gemfile 中包含以下内容:

# Gems used only for assets and not required
# in production environments by default.
Run Code Online (Sandbox Code Playgroud)

所以请确保这不是该:assets组的一部分

更新

我相信您的订购application.js应该如下所示:

//= require jquery
//= require jquery_ujs
//= require_tree .
//
//= require jquery-ui
//= require jquery.ui.all
//= require active_admin/application
//= require Player/soundmanager2-nodebug-jsmin.js
//= require best_in_place
//= require best_in_place.purr
//= require jquery-fileupload
//= require contextMenu/jquery.contextMenu.js
//= require contextMenu/jquery.ui.position.js
Run Code Online (Sandbox Code Playgroud)

此外,为了确保您的设置正确,application.rb您应该:

应用程序.rb

if defined?(Bundler)
  # If you precompile assets before deploying to production, use this line
  Bundler.require(*Rails.groups(:assets => %w(development test)))
  # If you want your assets lazily compiled in production, use this line
  # Bundler.require(:default, :assets, Rails.env)
end
Run Code Online (Sandbox Code Playgroud)

生产.rb

  # Disable Rails's static asset server (Apache or nginx will already do this)
  config.serve_static_assets = false

  # Compress JavaScripts and CSS
  config.assets.compress = true

  # Don't fallback to assets pipeline if a precompiled asset is missed
  config.assets.compile = true
Run Code Online (Sandbox Code Playgroud)

当你想执行以下命令时:bundle exec rake assets:precompile:all RAILS_ENV=production