Come posso usare i CSS con un’applicazione ruby ​​on rails?

Come si usano i CSS con RoR? Quando collego esternamente, non sono mai in grado di vedere i file. Ho copiato il file .css in ogni cartella che potevo pensare … viste, controller, template e niente sembra funzionare.

Cosa devo fare per abilitare i file CSS esterni con un’applicazione rails? Sono nuovo alle rotaie, quindi perdonami se questo è fondamentale.

Metti i file CSS in public / stylesheet e poi usa:

<%= stylesheet_link_tag "filename" %> 

per colbind il foglio di stile nei layout o nei file ERB nelle viste.

Allo stesso modo si mettono le immagini in pubblico / immagini e file javascript in pubblico / javascript.

Se si utilizza la versione rails> 3, esiste un concetto chiamato asset pipeline . Puoi aggiungere il tuo css a

 app/asset/stylesheets 

quindi verrà prelevato automaticamente dall’app. (questo è utile in quanto i binari comprimono automaticamente i file css)

leggi di più qui sulla pipeline degli asset

Ho fatto il seguente …

  1. posiziona il tuo file css nella cartella app/assets/stylesheets .
  2. Aggiungi il link del foglio di stile <%= stylesheet_link_tag "filename" %> nel file di layout predefinito (molto probabilmente application.html.erb )

Raccomando questo usando la tua cartella pubblica. Puoi anche fare riferimento al foglio di stile in linea, come nella pagina indice.

Usa il tag del foglio di stile rails per colbind il tuo main.css in questo modo

 <%= stylesheet_link_tag "main" %> 

Vai a

 config/initializers/assets.rb 

Una volta all’interno di assets.rb aggiungi il seguente snippet di codice appena sotto Rails.application.config.assets.version = '1.0'

 Rails.application.config.assets.version = '1.0' Rails.application.config.assets.precompile += %w( main.css ) 

Riavvia il tuo server.

Il post originale avrebbe potuto essere vero nel 2009, ma ora è in realtà non corretto ora, e non è nemmeno richiesto il collegamento per il foglio di stile come vedo in alcune delle altre risposte. Rails ora lo farà per impostazione predefinita.

  • Inserisci qualsiasi nuovo foglio .css (o altro) in app / assets / stylesheet
  • Metti alla prova il tuo server con il server root-root / scripts / rails e vedrai che il link viene aggiunto dalle rotaie stesse.

Puoi testarlo con un percorso nel tuo browser come testserverpath: 3000 / assets / filename_to_test.css? Body = 1

Per aggiungere a quanto sopra, la posizione più ovvia per aggiungere stylesheet_link_tag è nel layout dell’applicazione globale – application.html.erb.

Hai provato a metterlo nella tua cartella pubblica? Ogni volta che ho immagini o cose simili che ho bisogno di fare riferimento esternamente, ho messo tutto lì.