2012-04-19 36 views
9

Làm cách nào để thêm vendor/assets/javascripts/mymountableengine hoặc vendor/assets/stylesheets/mymountableengine vào đường dẫn nội dung của công cụ có thể gắn kết của tôi? Tôi muốn có thể yêu cầu các tệp từ các thư mục này trong tệp application.js/application.css của công cụ có thể gắn kết của tôi với sprockets.Thêm đường dẫn nội dung trong công cụ có thể gắn kết đường ray?

Đường ray 3.2.2

Cảm ơn.

+0

Afaik đường dẫn đến tài sản của động cơ là được thêm theo mặc định. [Câu trả lời này] cung cấp thêm một chút thông tin về chủ đề này. Bạn đã thử yêu cầu nội dung của công cụ trong tệp kê khai của ứng dụng chưa? –

+0

Liên kết của bạn bị hỏng =). Tôi có quyền truy cập vào nội dung trong ứng dụng/tài sản, nhưng tôi đã thêm thư mục nhà cung cấp theo cách thủ công và muốn đưa nó vào đường dẫn. Tôi chưa thêm tài sản của động cơ vào tệp kê khai của ứng dụng, tôi chỉ tải chúng bằng '' 'javascript_include_tag 'engine/application.js'''' - công cụ này tuyệt vời và tôi nhận được tất cả nội dung trong' '' app/asset' '', tuy nhiên khi tôi cố gắng yêu cầu các tập tin từ '' 'vendor/assets''' trong' '' engine/application.js''' tôi nhận được một lỗi rằng tập tin không tồn tại. – Yeggeps

+0

Ah, xin lỗi, ý tôi là [câu trả lời này] (http://stackoverflow.com/a/5877665/357743). –

Trả lời

8

Hóa ra chúng đã được tải! Chỉ cần đặt chúng vào thư mục sai: engine/vendor/assets/javascripts/engine - đặt chúng trong engine/vendor/assets/javascripts làm cho chúng có thể yêu cầu. Đối với những người khác, chỉ cần kiểm tra Rails.application.config.assets.paths để xem những con đường được nạp, tôi tin rằng động cơ sử dụng các phụ huynh Bánh răng môi trường, vì vậy để thêm đường dẫn chỉ cần sử dụng Rails.application.config.assets.paths << "path/here"

+0

Điều này đã khiến tôi điên và chạy' ray console' sau đó ' đặt Rails.application.config.assets.paths.join "\ n" 'đã giúp tôi thấy rằng thư mục nhà cung cấp mặc định không được đưa vào cho tôi. Cảm ơn! – Jondlm

5

tôi làm như thế này:

module MyEngine 
    class Engine < ::Rails::Engine 

    config.assets.paths << File.expand_path("../../assets/stylesheets", __FILE__) 
    config.assets.paths << File.expand_path("../../assets/javascripts", __FILE__) 
    config.assets.precompile += %w(my_engine.css) 

    end 
end 
+0

Lưu ý: Đảm bảo sử dụng << và không + = tại đây. Kể từ Rails 4.2 "+ =", ít nhất là từ trải nghiệm của tôi, sẽ không hoạt động âm thầm và phá vỡ ứng dụng của bạn mà không phải ném bất kỳ lỗi nào. – engineerDave

+0

Có, chúng ta nên thêm các phần tử vào mảng, chứ không phải thay thế nó bằng 'tiền biên dịch' là ok. –

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