2015-01-24 4 views
5

Ich arbeite an einer Rails-Engine. Die Engine enthält einige statische JS/CSS-Dateien in ihrem Ordner public, und ich möchte, dass diese Assets in die Hostanwendung integriert und von dieser bereitgestellt werden.Die statischen Ressourcen der Rails-Engine werden in der Host-App nicht bedient

Ich habe diese auf meine engine.rb Datei:

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

Interessant ist, wenn ich die Dummy-App innerhalb des Rails-Engine laufen selbst, oder den Motor in einer separaten App auf meinem Dateisystem über path installieren:

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

alles funktioniert. Aber sobald ich zu RubyGems veröffentlichen und über

gem 'my-engine' 

die statischen Vermögenswerte all 404.

Alle Ideen, wie die Diagnose in einer anderen App installieren? Gibt es noch etwas, was ich in der Host-App tun muss, um sicherzustellen, dass die statischen Assets übernommen und bedient werden? Es ist keine Sache der Produktionsumgebung, weil es nicht einmal in der Entwicklung funktioniert.

+0

Welche Version von Schienen war das? Schienen 4? –

Antwort

4

Ich habe vergessen zu public auf die Dateien Konfigurationsoption in meinem .gemspec:

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

Alles funktioniert jetzt!