2015-01-24 15 views
5

Tôi đang làm việc trên một công cụ Rails. Động cơ bao gồm một số JS/CSS tĩnh trong thư mục public của nó và tôi muốn các tài sản này được hợp nhất vào và phân phối bởi ứng dụng máy chủ lưu trữ.Nội dung tĩnh của công cụ Rails không được phục vụ trong ứng dụng máy chủ

tôi thêm này để engine.rb tập tin của tôi:

initializer "static assets" do |app| 
    app.middleware.insert_before(::ActionDispatch::Static, ::ActionDispatch::Static, "#{root}/public") 
end 

Điều thú vị là, khi tôi chạy ứng dụng giả trong cơ Rails chính nó, hoặc cài đặt các động cơ bên trong một ứng dụng riêng biệt trên hệ thống tập tin của tôi qua path:

gem 'my-engine', path: '~/my-engine` 

mọi thứ đều hoạt động. Nhưng một khi tôi xuất bản để RubyGems và cài đặt trong ứng dụng khác thông qua

gem 'my-engine' 

tài sản tĩnh tất cả 404.

Bất kỳ ý tưởng về làm thế nào để chẩn đoán? Có điều gì khác tôi cần làm trong ứng dụng máy chủ để đảm bảo các tài sản tĩnh đang bị kéo vào + đang được phân phát không? Nó không phải là một điều môi trường sản xuất, bởi vì nó thậm chí không làm việc trong phát triển.

+0

Phiên bản đường ray này là gì? Rails 4? –

Trả lời

4

tôi quên public để các tập tin tùy chọn cấu hình trong .gemspec tôi:

Gem::Specification.new do |s| 
    .. 
    s.files = Dir["{app,config,db,lib,public}/**/*", "MIT-LICENSE", "Rakefile", "README.rdoc"] 

Tất cả mọi thứ làm việc bây giờ!

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