Cambiare i CSS per usare la pipeline delle risorse in Rails?

3

Ho molti file CSS legacy da un'app Rails 2.x che è stata aggiornata a Rails 3.2.8 e voglio passare all'utilizzo della pipeline di asset Rails per i fogli di stile. Il problema è che la roba CSS è disordinata in termini di enormi righe di codice, nomi di file duplicati e struttura di cartelle non organizzate.

Dopo aver esaminato le singole pagine e aver provato ad aggiungere singoli fogli di stile e cartelle nella pipeline degli asset e aver trascorso alcuni cicli di debug, mi sono reso conto che probabilmente c'è un approccio migliore.

Esiste un modo per verificare che il vecchio CSS coincida con il CSS della pipeline di asset? Quali sono alcuni buoni strumenti per testare e debugare i CSS?

    
posta John 07.12.2012 - 16:38
fonte

1 risposta

0

Attenzione: non ti piace questa risposta.

Anche se le rotaie ti danno il file CSS per ogni controller, non sono incluse solo per questo controller. Se metti *= require_tree . nel tuo application.css , tutto verrà incluso.

Quindi, se il tuo progetto precedente ha utilizzato un approccio per includere diversi file per pagine diverse - ahi. C'è del lavoro sostanziale da fare per te.

Quello che puoi fare è implementare tale soluzione nel tuo layout:

<%= stylesheet_link_tag 'application' %>
<%- (@extra_css || []).each do |css| %>
  <link rel="stylesheet" type="text/css" href="/legacy_csses/<%= css %>" /> 
<% end %>

(Scrivo in HAML, quindi questo ERB potrebbe aver bisogno di un po 'di lucidatura per funzionare;))

E nei tuoi controller puoi

def index
  @extra_css = ['one.css', 'two.css']
end

così puoi avere css specifici per controller o azione. Ma tieni presente che quegli stili non sono nella pipeline delle risorse. Questa è una soluzione temporanea. D'ora in poi puoi iniziare a refactoring. Puoi farlo un file @extra_css alla volta. Il link può essere utile, può testare il tuo stile sullo screenshot di riferimento in modo da poter vedere rapidamente ciò che hai incasinato.

Ciononostante, è necessario eseguire un refactoring prima di poter spostare tutti gli stili nella pipeline delle risorse. Ma ci arriverai. Si sentirà bene. Ti invidio un po ':)

    
risposta data 23.10.2015 - 04:39
fonte

Leggi altre domande sui tag