ruby-on-rails - precompiling - rails assets precompile
la implementación de rails 3.1 en heroku.css no es un error precompilado (2)
En realidad, debe ejecutar la precompilación para su entorno de producción :
- Ejecutar
RAILS_ENV=production bundle exec rake assets:precompile
en local - Comprometerse y desplegar a Heroku
En términos más generales, los documentos de Heroku describen tres opciones para la compilación de activos para Rails 3.1+ en Cedar:
- Compilar localmente (cubierto en esta respuesta)
- Compilar durante la compilación de babosas
- Compilar durante el tiempo de ejecución
Actualizar
Obtuve este error porque tenía un archivo public.css y public.js que no se compiló con el resto de los archivos .css y .js. La solución fue agregar esta línea al archivo 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 puede ver en el comentario, ya se han agregado todas las aplicaciones de nombres de archivos. Entonces, solo tuve que agregar los que no se llamaban aplicación.
Espero que ayude a alguien!
Pregunta original
Tengo este archivo gema
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 despliegue con "git push heroku master" 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 heroku obtengo este ActionView :: Template :: Error. CSS no está precompilado Extraño ... Creo que estaba viendo los comentarios sobre la implementación
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?
- Ejecute los
bundle exec rake assets:precompile
en su código local - Confirma los cambios y despliega en heroku
Si esta es la primera vez que implementa su aplicación en heroku, puede experimentar más errores una vez que se resuelva. Déjame saber lo que pasa.