2013-06-06 10 views
6

Pracuję nad aplikacją rails 4 z jQuery Mobile i korzystam z gem jquery_mobile_rails, co oznacza, że ​​nie muszę instalować żadnego z plików jQuery. Mój problem polega na tym, że nie ma ikon dla przycisków. Są one wyświetlane w fazie rozwoju, ale nie w produkcji. Zakładam, że po prostu muszę je skompilować, ale gdzie one są i jak mogę to zrobić?W aplikacji Rails 4, jak mogę skompilować ikony przycisków jQuery Mobile?

Ponieważ nie używam bezpośrednio plików jQuery Mobile, nie mam możliwości przechowywania ikon pod nimi. Klejnot działa w trybie programowania, ale nie w trybie produkcji. Czy mogę założyć, że klejnoty zawierają wewnętrznie ikony przycisków? Jeśli tak, nie jestem w stanie zrozumieć, dlaczego nie działają w trybie produkcyjnym.

jquery-rails (2.3.0) 
jquery_mobile_rails (1.3.0) 
+0

trzeba umieścić pod 'ikony folderu images' gdzie plik jQM CSS jest umieszczony. – Omar

+0

Nie ma pliku JQM, używam klejnotów. – markhorrocks

+0

Czy dodałeś następujące elementy do manifestu aplikacji.css? * = require_self * = require_tree. * = wymagają jquery.mobile –

Odpowiedz

2

Jest known issue currently with Rails 4 gdy prekompilacja aktywów za środowisko.

ustawienie Spróbuj:

config.assets.precompile=true 

w config/application.rb.

Jeśli to nie pomoże, spróbuj dodać następujące do config/application.rb:

config.assets.precompile += %w(*.png *.jpg *.jpeg *.gif) 

nie mogę powtórzyć dziwny błąd można dostać, gdy łącząc te pliki do config.assets.precompile. Można try the answer to this question zamiast (zamienić linię powyżej):

config.assets.precompile << Proc.new { |path| 
    if path =~ /\.(css|js|png|jpg|jpeg|gif)\z/ 
    full_path = Rails.application.assets.resolve(path).to_path 
    app_assets_path = Rails.root.join('app', 'assets').to_path 
    vendor_assets_path = Rails.root.join('vendor', 'assets').to_path 

    if ((full_path.starts_with? app_assets_path) || (full_path.starts_with? vendor_assets_path)) && (!path.starts_with? '_') 
     puts "\t" + full_path.slice(Rails.root.to_path.size..-1) 
     true 
    else 
     false 
    end 
    else 
    false 
    end 
} 
+0

Masz na myśli production.rb? W jednym lub w obu przypadkach? – markhorrocks

+0

Nie, błąd oznacza, że ​​te zmiany w pliku production.rb nie działają, więc na chwilę należy umieścić je w 'config/application.rb'. Do czasu naprawienia tego problemu. – mccannf

+0

Te 2 linie w application.rb produkują ': undefined metoda '+' dla true: TrueClass (NoMethodError) Pierwsza linia to Ok, ale jeszcze nie przetestowana w produkcji. – markhorrocks