2013-05-29 4 views
5

私は、クラウドサーバ上で自分のアプリケーションをデプロイして、エラーをenconter:デプロイメントアプリ。 jQueryの-UIエラー

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)): 

私は、以前共有ホスト上で同じアプリケーションを配備するが、私は、このエラーprevioulsyを取得できませんでした。だから私は私の展開で何かが恋しいと思う。ところでbase.jsで :

//= 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 

EDIT:私の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' 

答えて

2

//= require jquery 
//= require jquery-ui 
//= require jquery_ujs 
//= require active_admin/application 

そして、私のアプリ/資産/ JavaScriptの/ application.js.erbで

似たようなことに遭遇し、 group :assetsブロックから gem jquery-uiを取り除くと、これは私のために修正されました。さらに、あなたはそれが次言うgemfileに気づくでしょう:

# Gems used only for assets and not required 
# in production environments by default. 

だから、これは: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 

さらに、あなたの設定が確実に

Application.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 

production.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 

を使用すると、以下のコマンドを実行したいときは:bundle exec rake assets:precompile:all RAILS_ENV=production

+0

宝石 "jqueryの-UI-レールの資産グループ – GeorgesLeYeti

+0

の外に既にある:一方

は、ちょうどまだあなたのGemfileでjQueryのUIのためのJavaScriptが含まれてjqueryのレールの古いバージョンを要求します@ georgesLeYetiあなたが 'jquery-ui 'ファイルを見つけることができなかったというエラーを見れば' jquery-ui'を探しています。あなたの前のコメントから 'gem' jquery-ui-rails ' ' – David

+0

@GeorgesLeYetiまた、インフラストラクチャの' jquery'ファイルを最初に呼び出す必要があります。必要なファイルの順序が重要ですさらに、 'app/assets/javascripts/application.js.erb'がない理由を理解できません。なぜ私に感覚がなかったのですか?この – David

6

をごapplication.rbあなたが持つべきで修正してください私はこの同じ問題で苦労してきました。 ..

あなたはActiveAdminとjquery-rails gemの間に最近作成されたヘッドセットに慣れていると思います。設定自体に問題はありません。

jquery-railsには、JQuery UI用のJavaScriptのコピーが含まれていましたが(CSSではなく、わかりません)これは、ActiveAdminのbase.jsファイルの行番号

//= require jquery-ui 

にあります。最近、jQuery-RailsはJQuery UI JavaScriptの組み込みを中止しました。したがって、上記の行は何も指していないため、アセット構築エラーが発生します。その宝石は、ファイルの名前を変更しますので、適切な行を必要とするよう助けないjqueryの-UI-レールをインストールすると、

//= require jquery.ui.all 

はおそらくjqueryのレールの以前のバージョンとの競合を避けるためです。

残念ながら、ActiveAdminはjquery-railsの代わりにjquery-ui-railsで単にリベースすることはできず、少なくともthis issue reportに従って、Rails 3.0との下位互換性を維持することはできません。だから、解決策は数​​日かかるかもしれない。

gem 'jquery-rails', '<3.0.0' 
+0

私はあらゆる種類のものを試してみました。そして最後に '<3.0.0'が働きました。ありがとう! – Lavixu

+0

ファイルの名前が変更されたということが私の問題でした。ありがとう、この:) – McCee