2013-06-06 14 views
6

Tôi đang phát triển một ứng dụng 4 đường ray với jQuery Mobile và sử dụng đá quý jquery_mobile_rails có nghĩa là tôi không cần phải cài đặt bất kỳ tệp jQuery nào. Vấn đề của tôi là không có biểu tượng cho các nút. Đây là những được hiển thị trong phát triển nhưng không được sản xuất. Tôi cho rằng tôi chỉ cần biên dịch chúng, nhưng chúng ở đâu và tôi có thể làm như thế nào?Trong ứng dụng Rails 4, tôi làm cách nào để biên dịch các biểu tượng nút jQuery Mobile?

Vì tôi không trực tiếp sử dụng các tệp jQuery Mobile, tôi không có tùy chọn để lưu trữ các biểu tượng bên dưới chúng. Đá quý hoạt động ở chế độ phát triển nhưng không hoạt động trong chế độ sản xuất. Tôi có thể giả định rằng đá quý có chứa các biểu tượng nút trong nội bộ không? Nếu vậy, tôi không hiểu tại sao họ không làm việc trong chế độ sản xuất.

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

bạn cần đặt biểu tượng trong thư mục 'hình ảnh' nơi tệp CSS jQM được đặt. – Omar

+0

Không có tệp JQM, tôi đang sử dụng đá quý. – markhorrocks

+0

Bạn đã thêm thông tin sau vào tệp kê khai application.css chưa? * = require_self * = require_tree. * = yêu cầu jquery.mobile –

Trả lời

2

known issue currently with Rails 4 khi biên dịch trước nội dung cho mỗi môi trường.

thiết lập Thử:

config.assets.precompile=true 

trong config/application.rb.

Nếu mà vẫn không hoạt động, hãy thử thêm dòng sau vào config/application.rb:

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

tôi không thể tái tạo các lỗi lạ bạn nhận được khi concatenating những tập tin này để config.assets.precompile. Thay vào đó, bạn có thể try the answer to this question (thay thế dòng trên):

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

Bạn có nghĩa là production.rb? Trong cả hai hoặc cả hai trường hợp? – markhorrocks

+0

Không, lỗi này có nghĩa là những thay đổi này đối với production.rb không hoạt động, vì vậy bạn phải đặt chúng, vào lúc này, vào 'config/application.rb'. Cho đến khi vấn đề này được khắc phục. – mccannf

+0

Hai dòng này trong application.rb tạo ': undefined method '+' cho true: TrueClass (NoMethodError) Dòng đầu tiên là Ok nhưng chưa được thử nghiệm trong sản xuất. – markhorrocks

Các vấn đề liên quan