2011-11-19 3 views
6

I miei file js.erb non vengono rigenerati anche quando riavvio il server di sviluppo. C'è un modo per me di forzare la pipeline di asset a rigenerare tutte le risorse javascript ogni volta che riavvio il server?Asset pipeline force js.erb ricompilazione

Se cambio il file sorgente .js.erb effettivo, ricompila bene, ma il codice viene estratto dal database, leggendo i dati di inizializzazione che potrebbero cambiare tra i riavvii del server.

risposta

10

In ritardo chiamata qui, ma avendo avuto questo problema dappertutto, ed essendo DAVVERO infastidito da esso, ha scavato un po '. Ecco la mia soluzione:

Sul riavviare il server, rm -rf tmp/cache/*

che soffierà via la SCSS e le altre attività in cache, e forzare una ricompilazione.

È possibile eseguire rake assets:clean invece se si preferisce o si sta utilizzando Rake per riavviare il server.

Ovviamente, facendo questo rallenta riavvio del server da un po ', ma potrebbe essere la pena per la rimozione di questo importante punto di dolore ...

+0

Bello! Questo funziona. – spike

1

Pensa a qualsiasi rubino eseguito all'interno della pipeline di asset come accade prima dell'avvio del server, poiché questo è effettivamente ciò che accade nella produzione con il passo di precompilazione delle risorse (e in fase di sviluppo verrà aggiornato se i file cambiano, come te " ve descritto). In questo caso, dovresti rifattorizzare quel codice in un controller e qualcosa nella directory app/views (html.erb/js.erb) in modo che il tuo codice venga eseguito su ogni richiesta.

+0

Credo che tu stia interpretando male la mia domanda. Riavviaremo il server se i dati di inizializzazione da cui JS dipende cambiano mai (sono cose statiche come country => mapping dello stato). Il mio problema è che * anche sul riavvio del server * in dev il JS non viene rigenerato. Devo cambiare il file sorgente reale (supponendo che stia facendo una specie di hashing) per farlo risalire. – spike

+0

Sì, lo bevo adesso. Hai config.assets.debug impostato su true nel tuo ambiente di sviluppo? Supponendo che non è così potresti controllare https://github.com/wavii/rails-dev-tweaks per alcuni indizi su ciò che i binari stanno facendo sotto il cofano, anche se non penso che risolverà il tuo problema dal casella poiché è orientata verso la compilazione delle risorse meno spesso. –

+0

yea 'config.assets.debug' è impostato, grazie per la risorsa farò ancora un po 'di scavo – spike