2013-05-29 15 views
5

jQuery UI po prostu wdrożyć mojej aplikacji na serwerze w chmurze, a następnie enconter błąd:Aplikacja szyn wdrożeniowych. Błąd

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

ja wcześniej wdrożyć tę samą aplikację na udostępnionym hosta ale nie miałem tego błędu previoulsy. Więc chyba coś mi brakuje w moim wdrożeniu. Btw w base.js:

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

I w moim app/assets/JavaSkrypty/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 

EDIT: W moim 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' 

Odpowiedz

2

Napotkał coś podobnego i stwierdził, że usunięcie gem jquery-ui z bloku group :assets naprawiło to za mnie. Ponadto można zauważyć w gemfile mówi co następuje:

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

więc upewnić się, że nie jest częścią grupy :assets

Aktualizacja

wierzę swoją kolejność swój application.js powinien wyglądać tak:

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

Co więcej, aby upewnić się, że twoja konfiguracja jest zgodna ego właściwego w swojej application.rb powinny mieć:

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

Gdy chcesz wykonać następujące polecenie: bundle exec rake assets:precompile:all RAILS_ENV=production

+0

gem „jQuery UI-szyn” jest już poza grupą aktywów – GeorgesLeYeti

+0

@GeorgesLeYeti Jeśli spojrzysz na błąd, który mówi "(nie mógł znaleźć pliku" jquery-ui' ", to szuka" jquery-ui ". Z twojego poprzedniego komentarza właśnie wspomniałeś, że' klejnot 'jquery-ui-rails' ' – David

+0

@GeorgesLeYeti Należy najpierw wywołać pliki" jQuery "infrastruktury, ważne jest uporządkowanie wymaganych plików, dalej nie rozumiem, dlaczego masz" app/assets/javascripts/application.js.erb ", to nie powoduje nie ma dla mnie sensu, dlaczego to zrobiłeś to – David

6

Zmagałem się z tym samym problemem. ..

Wierzę, że natrafiłeś na niedawno utworzoną główkę pomiędzy ActiveAdmin a klejnotem jquery-rails; nie ma nic złego w konfiguracji jako takiej.

JQuery-rails używane do dołączenia kopii JavaScript dla JQuery UI (ale nie CSS, nie wiem dlaczego). To właśnie zostało wciągnięte przez linię w pliku base.js ActiveAdmin w postaci linii Ostatnio, jquery-rails zmniejszyło włączenie JQuery UI JavaScript, więc linia powyżej wskazuje teraz na nic i powoduje błąd kompilacji zasobów. Instalacja jQuery-UI-szyny nie pomoże, bo to perełka zmienia nazwy plików, tak aby właściwe wymagać linii jest

//= require jquery.ui.all 

prawdopodobnie w celu uniknięcia konfliktu z poprzednimi wersjami jQuery szynach.

Niestety, ActiveAdmin nie może po prostu ponownie ustawić siebie na jquery-ui-rails zamiast jquery-rails i zachowywać kompatybilność wsteczną z Rails 3.0, przynajmniej zgodnie z this issue report. A więc rozwiązanie może zająć kilka dni.

W międzyczasie, po prostu poprosić starszą wersję jQuery szyn, które nadal obejmuje JavaScript jQuery UI w swojej Gemfile:

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

Próbowałem różnych rzeczy, aż w końcu "<3.0.0" zadziałało. Dzięki! – Lavixu

+0

Fakt, że nazwa pliku została zmieniona, był moim problemem. Dzięki za to :) – McCee

Powiązane problemy