2011-10-24 12 views
5

Sto distribuendo il progetto sul server dopo aver distribuito CSS e immagini: funziona, ma il JS non funziona - 404. Hash JavaScript in HTML e pubblico/attività - disallineamento.Impronta digitale errata nella pipeline di asset Rails 3.1 per file JS in produzione

In HTML: application-6851a5d9167871936c32da723dca0f23.js 
In public/assets: application-95ecf5bab4b7984abe8c1c23b72a7679.js 
+2

Potrebbe aggiungere alcune informazioni alla tua domanda (direttamente modificandolo): Che cosa significa HTML? Intendi l'URL generato da Rails nel tuo codice sorgente? Sospetto che funzioni nello sviluppo. Che cosa hai fatto per ottenere le risorse? 'rake assets: precompile'? Hai cambiato qualcosa nella configurazione? È una nuova applicazione per i binari o una nuova migrata? – mliebelt

+0

sì, intendo l'URL generato da Rails nel mio codice sorgente. Sì, funziona nello sviluppo, ma non ha funzionato nella produzione. Ottengo le risorse tramite asset rake: precompilare. È la nuova app per rotaie –

+0

Ho controllato con le mie applicazioni, lì l'hash è lo stesso nel codice HTML e nel percorso del file. Hai controllato il tuo 'manifest.yml' che contiene le impronte digitali per file? Quale server usi in produzione? – mliebelt

risposta

0

Forse si esegue 'attività rastrello: attività pulite: precompilazione'?

Inoltre, se si utilizza GIT, è necessario 'git rm' anche le versioni precedenti delle risorse. Avrai bisogno di fare qualcosa di simile per gli altri sistemi di controllo della versione se l'ambiente di produzione viene aggiornato spingendo uno spazio di lavoro (ad esempio Heroku).

Nel proprio ambiente di sviluppo, le risorse vengono recuperate direttamente dalla base di origine, quindi se le si cambia, non è necessario precompilare nuovamente (risparmiando tempo durante lo sviluppo). Ma, a causa di ciò, puoi inciampare abbastanza facilmente sulle risorse.

0

Il riavvio dell'applicazione ha risolto per me.

E.g. nella directory principale dell'applicazione:

touch tmp/restart.txt 

o in Capistrano 3 di deploy.rb:

namespace :deploy do 
    desc 'Restart application' 
    task :restart do 
    on roles(:app) do 
     within release_path do 
     execute :touch, 'tmp/restart.txt' 
     end 
    end 
    end 

    after 'deploy:publishing', 'deploy:restart' 
end 
Problemi correlati