11

Uso codekit per scrivere meno che poi converte in css automaticamente.Esclusione di file dalle risorse: precompilazione nelle guide

Non voglio che i binari convertano i miei meno file in css, piuttosto il codekit lo faccio.

se precompilare i beni tramite

rake assets:precompile 

ottengo

rake aborted! 
cannot load such file -- less 

Come faccio escludono uno specifico tipo di file/cartelle da precompilazione? (Tutti i miei meno i file sono in app/assets/fogli di stile/meno e il CSS (che io voglio essere precompilati) sono in app/assets/fogli di stile/css

aggiornamento

eliminazione application.less risolve questo ma come faccio a escludere dal trattamento, in primo luogo

risposta

18

dalla guida Asset Pipeline:?

il matcher predefinita per la compilazione dei file include application.js, ap plication.css e tutti i file non-JS/CSS (per esempio, .coffee e .scss file non sono inclusi automaticamente in quanto la compilazione di JS/CSS):

[ Proc.new{ |path| !File.extname(path).in?(['.js', '.css']) }, /application.(css|js)$/ ] 

Se avete altri manifesti o di singoli fogli di stile e JavaScript file da includere, è possibile aggiungerli alla matrice precompilare:

config.assets.precompile += ['admin.js', 'admin.css', 'swfObject.js'] 

Quindi, direi che la soluzione è quella di modificare config.assets.precompile per escludere i file .less. Forse qualcosa di simile (in un file ambiente adatto, come config/environments/production.rb):

config.assets.precompile = [ Proc.new{ |path| !File.extname(path).in?(['.js', '.css', '.less']) }, /application.(css|js)$/ ] 
+0

questo non funziona .. stesso errore –

+1

Questo non funziona perché Rails non sa cosa fare con i file 'less'. L'aggiunta della gemma 'less-rails' alla tua app potrebbe rimuovere l'errore ma non è la soluzione che hai posto nella domanda. – Kashyap

+0

ok correzione - questo funziona quando lo metto in production.rb .. non è application.rb .. solo con bundle exec –

1

Se la struttura di directory nella cartella app/Attività è così:

application.css 
/css 
(generated by code kit) 
|...home.css 
|...index.css 
/less 
|...home.less (assuming this is the extension) 
|...index.less 

Poi, nel file application.css , ci deve essere una direttiva che dice *= require_tree . Questo dice ai binari di scansionare tutti i file/directory e provare a compilare tutti i file in un file css.

Cambiare questo numero in *= require_directory ./css e caricherà i file nella directory css per la compilazione.

+0

ancora uguale :(vale la pena notare che il mio albero è /css/application.css e/less/application.less –

+0

Ah! Ciò non funzionerebbe poiché application.css è il file principale in cui verrebbero compilate le risorse secondarie. – Kashyap