2011-09-06 18 views
9

Qual è il modo più semplice (c'è un modo semplice?) Di usare Less (in combinazione con Sass/Scss) nella pipeline di rails 3.1 assets?Come usare Less in un'applicazione rails 3.1?

voglio caricare un file come foo.css.less come ho farei per bar.css.scss

ho trovato qualche soluzione wonky che non funziona per me (non ho provato un sacco): https://github.com/thisduck/ruby-less-js/issues/2

L'idea sarebbe di utilizzare Twitter Bootstrap in modo pulito. Grazie in anticipo

risposta

-1

Basta mettere il file yourlessfile.less in public/stylesheets, quindi a suo avviso, sono con

stylesheet_link_tag "/stylesheets/yourlessfile.less", :rel => "stylesheet/less" 

Non dimenticare includere less.js nella vista.

+0

Si certo, questa è una soluzione semplice e pulito, ma il file meno non passare attraverso la pipeline beni. Voglio che venga elaborato da pignone e compresso con il resto ... – Sucrenoir

+0

È una bella risposta all'intestazione della domanda ma non i dettagli della domanda. È utile per le persone che cercano che vedono l'intestazione. –

10

Se si desidera utilizzare solo il bootstrap, è possibile farlo includendo le gemme "less-rail" e "less-rails-bootstrap" nel file GemFile.

Quindi, è possibile @import bootstrap nei file .css.less:

@import "twitter/bootstrap" 

In alternativa, è possibile includere ogni file costituente singolarmente (ad esclusione di quelli che non vuoi):

// Reset 
@import "twitter/bootstrap/reset"; 

// Core variables and mixins 
@import "twitter/bootstrap/variables"; 

@import "twitter/bootstrap/mixins"; 

// Grid system and page structure 
@import "twitter/bootstrap/scaffolding"; 

// Styled patterns and elements 
@import "twitter/bootstrap/type"; 
@import "twitter/bootstrap/forms"; 
@import "twitter/bootstrap/tables"; 
@import "twitter/bootstrap/patterns"; 

Se non si desidera utilizzare la gemma bootstrap less-rails per qualsiasi motivo, oppure se si dispone di file senza bootstrap .less che si desidera includere, è necessario aggiungere manualmente i percorsi .less ai binari di scorrimento inferiori. config. Nota che nessuno di questi lavori extra è necessario se i tuoi nomi di file terminano in .css.less poiché la pipeline di asset dovrebbe gestire quella compilazione per te (purché tu abbia incluso 'less-rail'). Questa procedura è necessaria solo se desideri fare riferimento a file .less esterni direttamente nei file .css.less della tua app.

L'installazione che utilizzo per bootstrap è copiare i file * .less su vendor/assets/frameworks/twitter/bootstrap. Mantenere i file in vendor/assets/stylesheets/... mi ha causato alcuni problemi, probabilmente a causa della magia di Rails che risolve le mie importazioni nei file .less non elaborati e non sapendo cosa fare con loro (questa è solo speculazione da parte mia, non l'ho esaminata completamente) .

Una volta ottenuti i file .less nel progetto, è necessario dire a meno-binari dove trovarli. Fai ciò inserendo quanto segue nel tuo application.rb.

YourApp::Application.configure do 
    config.less.paths << File.join(Rails.root,'vendor','frameworks') 
    # Should be set to true in production. 
    config.less.compress = false 
end 

È possibile importarli in .css.meno file utilizzando:

@import "twitter/bootstrap/reset" 
@import "twitter/bootstrap/variables" 
... 
+0

Ho usato il tuo secondo approccio e funziona assolutamente! Grazie @billmag –