2011-11-23 12 views
33

actualizacióncarriles de 3,1 implementación en Css heroku no se precompila error

tengo este error porque no tenía un archivo public.css y public.js que no fue compilado con el resto de la Css y .js archivos. La solución fue añadir esta línea en el fichero de production.rb

# Precompile additional assets (application.js, application.css, and all non-JS/CSS are already added) 
config.assets.precompile += %w(public.js public.css ) 

Como se puede ver a partir de la observación ya se han agregado todos los nombres de los archivos de aplicación. Entonces, solo tuve que agregar los que no se llamaban aplicación.

Espero que ayude a alguien!

pregunta original

tengo este archivo joya

gem 'rails', '3.1.0' 

group :production do 
    gem 'pg' 
end 
group :development, :test do 
    gem 'sqlite3' 
end 

gem "heroku" 
gem 'thin' 
gem 'sass-rails', " ~> 3.1.0" 
gem 'coffee-rails', "~> 3.1.0" 
gem 'tabulous' 
gem 'json' 
gem "paperclip", "~> 2.4" 
gem "devise" 
gem "redcarpet" 

group :assets do 

    gem 'uglifier' 
end 

gem 'jquery-rails' 

gem "rspec-rails", :group => [:test, :development] 
group :test do 
end 

cuando despliego con "git principal empuje heroku" Veo esto

Preparing app for Rails asset pipeline 
     Running: rake assets:precompile 
     mkdir -p /tmp/build_2m34y4hj01m4o/public/assets 
     mkdir -p /tmp/build_2m34y4hj01m4o/public/assets 
     mkdir -p /tmp/build_2m34y4hj01m4o/public/assets 
     mkdir -p /tmp/build_2m34y4hj01m4o/public/assets/admin 
     mkdir -p /tmp/build_2m34y4hj01m4o/public/assets/admin 
-----> Rails plugin injection 
     Injecting rails_log_stdout 
     Injecting rails3_serve_static_assets 
-----> Discovering process types 
     Procfile declares types  -> (none) 
     Default types for Ruby/Rails -> console, rake, web, worker 
-----> Compiled slug size is 31.2MB 
-----> Launching... done, v5 
     http://maktaba.herokuapp.com deployed to Heroku 

pero en los registros de Heroku I obtener este ActionView :: Template :: Error. CSS no se precompila extraño .. Me vestuario que estaba mirando las votaciones despliegue

2011-11-23T22:59:48+00:00 app[web.1]: Rendered public/index.html.erb within layouts/first (0.7ms) 
2011-11-23T22:59:48+00:00 app[web.1]: Completed 500 Internal Server Error in 30ms 
2011-11-23T22:59:48+00:00 app[web.1]: 
2011-11-23T22:59:48+00:00 app[web.1]: ActionView::Template::Error (public/public.css isn't precompiled): 
2011-11-23T22:59:48+00:00 app[web.1]:  2: <html> 
2011-11-23T22:59:48+00:00 app[web.1]:  3: <head> 
2011-11-23T22:59:48+00:00 app[web.1]:  4: <title>Maktaba</title> 
2011-11-23T22:59:48+00:00 app[web.1]:  5: <%= stylesheet_link_tag "public/public" %> 
2011-11-23T22:59:48+00:00 app[web.1]:  6: <%= javascript_include_tag "public/public" %> 
2011-11-23T22:59:48+00:00 app[web.1]:  7: <%= csrf_meta_tags %> 
2011-11-23T22:59:48+00:00 app[web.1]:  8: <%= csrf_meta_tags %> 
2011-11-23T22:59:48+00:00 app[web.1]: app/views/public/index.html.erb:5:in `_app_views_public_index_html_erb___1726244208117637261_45234420' 
2011-11-23T22:59:48+00:00 app[web.1]: app/controllers/public_controller.rb:13:in `block (2 levels) in index' 
2011-11-23T22:59:48+00:00 app[web.1]: 
2011-11-23T22:59:48+00:00 app[web.1]: app/controllers/public_controller.rb:12:in `index' 

Puede alguno de ustedes ver lo que estoy haciendo mal?

+2

añadiendo la línea 'config.assets.precompile + =% w (public.css public.js)' a production.rb luego ejecutando 'bundle exec rake assets: precompile' seguido de push y heroku restart me sirvió de algo. Gracias. – scald

Respuesta

18
  • Run bundle exec rake assets:precompile en su código local
  • confirmar los cambios y desplegar a heroku

Si esta es la primera vez que el despliegue de su aplicación a heroku, puede experimentar más errores después de que esto se resuelva. Déjame saber lo que pasa.

7

En realidad, es necesario ejecutar la compilación previa para su producción medio ambiente:

  • Run RAILS_ENV=production bundle exec rake assets:precompile en locales
  • Commit y desplegar a Heroku

En términos más generales, la Heroku docs describen tres opciones para la compilación de activos para Rails 3.1+ en Cedro:

  1. Compilar localmente (cubierto en esta respuesta)
  2. Compilar durante la compilación slug
  3. Compilar en tiempo de ejecución
Cuestiones relacionadas