2012-04-19 14 views
9

Come è possibile aggiungere vendor/assets/javascripts/mymountableengine o vendor/assets/stylesheets/mymountableengine ai percorsi delle risorse del mio motore montabile? Voglio poter richiedere i file da queste cartelle nel file application.js/application.css del mio motore montabile con ruote dentate.Aggiungi percorso asset nel motore montabile su rotaie?

Rails 3.2.2

Grazie.

+0

percorsi per quanto ne so di attività del motore sono aggiunto per impostazione predefinita. [Questa risposta] fornisce un po 'più di informazioni sull'argomento. Hai provato a richiedere le risorse del motore nel manifest della tua app? –

+0

Il tuo link è rotto =). Ho accesso alle risorse in app/asset, ma ho aggiunto la directory del fornitore manualmente e voglio includerla nei percorsi. Non ho aggiunto le risorse del motore nel file manifest della mia app, le carico solo con '' 'javascript_include_tag 'engine/application.js''' - funziona alla grande e ottengo tutte le risorse in' '' app/assets' '', tuttavia quando provo a richiedere i file da '' 'vendor/assets''' a' '' engine/application.js''', viene visualizzato un errore che il file non esiste. – Yeggeps

+0

Ah, mi spiace, volevo dire [questa risposta] (http://stackoverflow.com/a/5877665/357743). –

risposta

8

Risulta che erano già stati caricati! Basta metterli nella directory sbagliata: engine/vendor/assets/javascripts/engine - metterli in engine/vendor/assets/javascripts li ha resi requirable. Per altri, basta controllare Rails.application.config.assets.paths per vedere quali percorsi vengono caricati, credo che i motori utilizzano l'ambiente Sprockets i genitori, in modo da aggiungere percorsi basta usare Rails.application.config.assets.paths << "path/here"

+0

Questo mi stava facendo impazzire ed eseguivo la console' rails' quindi ' mette Rails.application.config.assets.paths.join "\ n" 'mi ha aiutato a scoprire che la cartella del fornitore predefinita non è stata inclusa per me. Grazie! – Jondlm

5

mi piace questo:

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

Nota: assicurarsi di utilizzare << e non + = qui. A partire da Rails 4.2 "+ =", almeno dalla mia esperienza, fallirò silenziosamente e interromperò la tua app senza generare errori. – engineerDave

+0

Sì, dovremmo aggiungere elementi all'array, non sostituirlo, con con 'precompile' è ok. –

Problemi correlati