rails precompiling initialize_on_precompile failed asset ruby-on-rails ruby-on-rails-3 heroku asset-pipeline sass

ruby-on-rails - precompiling - rails 5 asset pipeline heroku



No se pudo encontrar el archivo ''twitter/bootstrap'' en Producción (6)

¿Estás usando una gema? Asegúrese de que su gema no sea parte del grupo de activos y esté accesible en producción.

De GemFile

# Gems used only for assets and not in production environments by default.

Así que solo mueve la gema fuera de cualquier grupo y deberías estar bien.

Estoy usando el Bootstrap de Twitter traducido a archivos SCSS. Funciona en el desarrollo local, pero cuando precompilo y pulso a Heroku (usando la pila de Cedar), obtengo esto

> Started GET "/" for 74.57.16.130 at 2012-01-28 17:16:36 +0000 > Processing by StaticPagesController#home as HTML Rendered > static_pages/home.html.erb within layouts/application (0.7ms) > Completed 500 Internal Server Error in 4ms > > ActionView::Template::Error (couldn''t find file ''twitter/bootstrap'' > (in /app/app/assets/stylesheets/application.scss.css:11)): > 8: </head> > 6: <%= javascript_include_tag "application" %> > 4: <title><%= full_title(yield(:title)) %></title> > 2: <html> > 5: <%= stylesheet_link_tag "application", :media => "all" %> app/views/layouts/application.html.erb:5:in > `_app_views_layouts_application_html_erb___288948710373692320_32137840'' > 3: <head> cache: [GET /] miss > > 7: <%= csrf_meta_tags %> cache: [GET /favicon.ico] miss

Estoy usando Rails 3.2.0, la aplicación estaba funcionando en Heroku hasta que agregué los archivos SASS.


Asegúrese de que, en config / environment / production.rb, tenga ...

config.serve_static_assets = true


Cuando ve algo como esto cuando está desplegando la aplicación Rails en heroku.com

Precompiling assets failed, enabling runtime asset compilation ... could not connect to server: Connection refused Is the server running on host "127.0.0.1" and accepting TCP/IP connections on port xxxx?

Solo agrega esto a config / application.rb

config.assets.initialize_on_precompile = false


En config/environments/production.rb agregue esta línea:

config.assets.precompile = [/^[-_a-zA-Z0-9]*/..*/]

Mi conjetura es que no está agregando todos sus activos.


Esto solucionó el problema en Heroku al menos

acaba de bajar a sass-rails 3.1.4

group :assets do gem ''coffee-rails'', ''~> 3.1.1'' gem ''uglifier'', ''>= 1.0.3'' gem ''sass-rails'', ''3.1.4'' gem ''bootstrap-sass'', ''~> 2.0.2'' end


Solo pon esto en tu gemfile

gem "twitter-bootstrap-rails", "~> 2.0rc0"

Hay CSS inválido en BootStrap 2.0 que hace que la compilación SCSS falle

Puedes verificar esto mirando la salida de

git push heroku master

Deberías ver algún error como:

-----> Preparing app for Rails asset pipeline Running: rake assets:precompile rake aborted! Invalid CSS after "...er-radius:0 /0/": expected expression (e.g. 1px, bold), was ";}" (in /tmp/build_1k8ugei34dpcw/app/assets/stylesheets/application.css) Tasks: TOP => assets:precompile:primary (See full trace by running task with --trace) Precompiling assets failed, enabling runtime asset compilation Injecting rails31_enable_runtime_asset_compilation Please see this article for troubleshooting help: http://devcenter.heroku.com/articles/rails31_heroku_cedar#troubleshooting