2012-04-19 6 views
9

Wie kann ich vendor/assets/javascripts/mymountableengine oder vendor/assets/stylesheets/mymountableengine zu den Ressourcenpfaden meiner montierbaren Engine hinzufügen? Ich möchte Dateien aus diesen Ordnern in der Datei application.js/application.css der Mount-Engine mit Ritzeln anfordern können.Anlagepfad in schienenmontierbaren Motor hinzufügen?

Schienen 3.2.2

Danke.

+0

Afaik Wege zum Motor Vermögen sind standardmäßig hinzugefügt. [Diese Antwort] bietet ein wenig mehr Informationen zum Thema. Haben Sie versucht, die Assets der Suchmaschine im Manifest Ihrer App zu verwenden? –

+0

Ihr Link ist kaputt =). Ich habe Zugriff auf Assets in App/Assets, habe aber das Lieferantenverzeichnis manuell hinzugefügt und möchte es in die Pfade aufnehmen. Ich habe die Assets der Engine nicht im Manifest meiner App hinzugefügt, ich lade sie nur mit '' 'javascript_include_tag 'engine/application.js'''' - das funktioniert großartig und ich bekomme alle Assets in' '' app/assets' '', aber wenn ich versuche, Dateien von '' 'vendor/assets'' in' 'engine/application.js''' zu bekommen, bekomme ich einen Fehler, dass die Datei nicht existiert. – Yeggeps

+0

Ah, Entschuldigung, ich meinte [diese Antwort] (http://stackoverflow.com/a/5877665/357743). –

Antwort

8

Es stellte sich heraus, dass sie bereits geladen waren! Legen Sie sie einfach in das falsche Verzeichnis: engine/vendor/assets/javascripts/engine - setzen Sie sie in engine/vendor/assets/javascripts machte sie erforderlich. Für andere, überprüfen nur Rails.application.config.assets.paths zu sehen, welche Wege geladen werden, ich glaube, Motoren die Eltern Pinion Umgebung zu verwenden, so Wege fügen Sie einfach Rails.application.config.assets.paths << "path/here"

+0

Das hat mich verrückt gemacht und' rails console' then 'ausgeführt puts Rails.application.config.assets.paths.join "\ n" 'half mir zu finden, dass der Standard-Lieferantenordner für mich nicht enthalten war. Vielen Dank! – Jondlm

5

verwende ich wie folgt tun:

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

Hinweis: Verwenden Sie unbedingt << und nicht + = hier. Ab Rails 4.2 "+ =", zumindest aus meiner Erfahrung, wird stillschweigend fehlschlagen und Ihre App ohne Fehler zu brechen. – engineerDave

+0

Ja, wir sollten Elemente zum Array hinzufügen, nicht ersetzen, mit 'precompile' ist ok. –