2011-10-03 2 views
7

Ho recentemente aggiornato un'app da Rails 3.0 a 3.1. Ho seguito tutte le istruzioni che ho trovato per abilitare la pipeline bene ma non riesce sempre quando nella produzione ambiente:La pipeline delle risorse dei binari non funziona nell'ambiente di produzione?

<%= javascript_include_tag "application" %> 

mi dà

<script src="/javascripts/application.js" type="text/javascript"></script> 

che manca un digest e ottengo il seguente errore:

cache: [GET /javascripts/application.js] miss 
Started GET "/javascripts/application.js" for 127.0.0.1 at 2011-10-03 23:31:36 +0100 
ActionController::RoutingError (No route matches [GET] "/javascripts/application.js"): 

ho provato varianti di queste impostazioni in application.rb:

require File.expand_path('../boot', __FILE__) 

#require 'rails/all' 
require "action_controller/railtie" 
require "action_mailer/railtie" 
require "active_resource/railtie" 
require "rails/test_unit/railtie" 

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 


module Blog 
    class Application < Rails::Application 
    config.autoload_paths += %W(#{config.root}/lib) 
    config.encoding = "utf-8" 
    config.filter_parameters += [:password] 
    config.assets.enabled = true 
    config.assets.version = '1.0' 
    end 
end 

e pieno production.rb (meno alcuni commenti)

Blog::Application.configure do 
    config.cache_classes = true 
    config.consider_all_requests_local  = false 
    config.action_controller.perform_caching = true 
    config.serve_static_assets = false 
    config.assets.compress = true 
    config.assets.compile = false 
    config.assets.digest = true 
    config.i18n.fallbacks = true 
    config.active_support.deprecation = :notify 
end 

Ho eseguito il compito rake assets:precompile.

Mi sto perdendo tutte le misure ovvie?

Edit: Alcuni dettagli aggiuntivi:

i miei beni sono nella cartella app/assets. app/assets/images, app/assets/javascripts, app/assets/stylesheets, ecc

vedo i miei file generati nel mio public/assets directory con nomi e digerisce.

app/assets/javascripts/application.js compila effettivamente a qualcosa come public/assets/application-6ec417a53cb2bdb949966a153a61e7b1.js Si finisce nella directory public.

risposta

12

I pignoni non vengono caricati.

Nel tentativo di rimuovere record attivo in una versione precedente di rotaie (alla questione Remove ActiveRecord in Rails 3 (beta)) il require 'rails/all' è stato sostituito da

require "action_controller/railtie" 
require "action_mailer/railtie" 
require "active_resource/railtie" 
require "rails/test_unit/railtie" 

Quello che mancava qui era sprockets/railtie

+0

Stavo usando RSpec, e quindi ho avuto un setup simile con test_unit commentato. Non avevo idea che i pignoni avessero una sua rotaia. Grazie mille per questo. –

+0

Impressionante cattura B) – dexter

3

Vedi l'Upgrading to Rails 3.1 Railscast

Assicurarsi che i vostri beni sono nella cartella app/assets. app/assets/images, app/assets/javascripts, app/assets/stylesheets, ecc

Execute rake assets:precompile

Si dovrebbe vedere file generati nella app/public/assets directory con nomi e digerisce se abilitato.

app/assets/javascripts/application.js sarebbe compilare in /assets/application-6ec417a53cb2bdb949966a153a61e7b1.js

Se l'attività prende il nome simile al precedente con un digest, Production.rb dovrebbe avere la seguente configurazione:

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

Se si guarda alla sorgente della pagina web che si dovrebbe vedere qualcosa di simile al seguente:

<script src="/assets/application-6ec417a53cb2bdb949966a153a61e7b1.js" type="text/javascript"></script> 

tenta di caricare manualmente il file andando a http://example.com//assets/application-6ec417a53cb2bdb949966a153a61e7b1.js

Il file dovrebbe caricare, se non provare a controllare le autorizzazioni e ulteriori registri.

+0

Grazie, avevo visto i binari lanciati quando si effettuano le mie modifiche. Ho aggiornato la mia risposta per rispondere ai vostri suggerimenti. – tpower

+0

Puoi pubblicare i tuoi file 'application.rb' e' production.rb'? – Joey

+0

Ho aggiunto completo 'application.rb' e' production.rb' alla domanda. Full repo: https://github.com/trevorpower/trevorpower-com – tpower