2013-02-04 11 views
11

ho spinto un'applicazione Rails per Heroku e continuare a correre in seguente problema:Rails Attività Precompile semplicemente non funziona

Vi risparmio modifiche al mio file css.scss principale (in attività/fogli di stile) o per immagini in risorse/immagini, spingere a dare, spingere quello a heroku, e ricaricare la pagina, solo per scoprire che questi beni non sono stati caricati affatto.

Questo è stato anche un piccolo problema sul server locale, ma di entrare:

rake assets:precompile 

e ricaricando il server locale di solito lavorato, mentre facendo

heroku run rake assets:precompile 

e poi ri-spingendo non fa nulla. Ho pescato in giro per informazioni e non ho trovato nulla di particolarmente utile.

Da segnalare, nel mio config/application.rb (alcune di queste il risultato di dette pesca intorno):

# Enable the asset pipeline 
config.assets.enabled = true 

if defined?(Bundler) 
    # If you precompile assets before deploying to production, use this line 
    Bundler.require(*Rails.groups(:assets => %w(development test))) 
    # If you want your assets lazily compiled in production, use this line 
    # Bundler.require(:default, :assets, Rails.env) 
end 

in config/ambienti/production.rb:

# Disable Rails's static asset server (Apache or nginx will already do this) 
config.serve_static_assets = false 

# Compress JavaScripts and CSS 
config.assets.compress = true 

# Fallback to assets pipeline if a precompiled asset is missed 
config.assets.compile = true 

# Generate digests for assets URLs 
config.assets.digest = true 

Di ulteriore interesse possibile, quando spingo su heroku, si dice, tra le altre cose, questo:

Preparing app for Rails asset pipeline 
     Detected manifest.yml, assuming assets were compiled locally 
-----> Rails plugin injection 
     Injecting rails_log_stdout 
     Injecting rails3_serve_static_assets 

e

Installing dependencies using Bundler version 1.3.0.pre.5 
Running: bundle install --without development:test --path vendor/bundle --binstubs vendor/bundle/bin --deployment 

ho imparato con Rails 3 e non so davvero come la pipeline beni è diverso da ciò che era disponibile nella versione precedente, quindi scusate se devo essere un idiota e mettendo sovrapposizioni e/o impostazioni contraddittorie nei miei file di configurazione.

Apprezzerei qualsiasi aiuto. Questo è stato un mal di testa.

risposta

13

Sembra che potrebbe essere che si aggiungono le risorse compilate localmente per git e spingendole e di conseguenza Heroku non sta compilando le risorse su push. Assicurati di non aggiungere la directory public/assets a git.

+1

Quindi intendete aggiungere/pubblico/risorse al file .gitignore? Fatelo E "git rm" la directory? O cancellare determinati file al suo interno? Scusate. Non so quale relazione abbia questa directory con la pipeline degli asset, quindi non sono sicuro di come annullare in modo retroattivo i suoi componenti non validi. – Sasha

+3

Rimuovi quella directory da git e poi aggiungila anche a git ignore. Questa directory è dove vengono compilati tutti gli asset quando si eseguono le risorse di rake: precompilare. –

+0

assicurati di salvare i file cancellati in public/assets/to master! quindi si spinge una directory pubblica/assets/vuota su heroku. Dovresti vedere heroku richiamare automaticamente le risorse del rake: precompilare – Bruno

Problemi correlati