rails create app ruby-on-rails ruby-on-rails-3 heroku

ruby-on-rails - create - ruby heroku



Activos de Rake: precompilación no funciona en Heroku (3)

Mi sitio web solía estar funcionando y Heroku precompilaba los activos y todo. Ahora, aparentemente de la nada, ¡comencé a rake aborted! stack level too deep rake aborted! stack level too deep en el despliegue.

Eliminando la línea *= require_tree . de mi archivo application.css parece arreglar el stack level too deep pero luego me sale esto:

Running: rake assets:precompile (in /tmp/build_b8o2t4k8frce) /usr/local/bin/ruby /tmp/build_b8o2t4k8frce/vendor/bundle/ruby/1.9.1/bin/rake assets:precompile:nondigest RAILS_ENV=production RAILS_GROUPS=assets (in /tmp/build_b8o2t4k8frce)

Todos mis enlaces a imágenes están rotos (estoy usando image-url () en mi archivo css). ¿Cuál podría ser el problema y cómo lo soluciono?

Estoy usando la pila de cedro y este es mi archivo gem:

gem ''rails'', ''3.1.0'' gem ''rake'', ''0.8.7'' gem ''devise'' group :production do gem ''pg'' gem ''thin'' end group :assets do gem ''sass-rails'', " ~> 3.1.0" gem ''coffee-rails'', "~> 3.1.0" gem ''uglifier'' end

Y aquí están las versiones utilizadas por heroku:

Using rake (0.8.7) Using rails (3.1.0) Using sass (3.1.15) Using sass-rails (3.1.6)

Aquí está mi archivo application.rb

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 App class Application < Rails::Application # Enable the asset pipeline config.assets.enabled = true # Version of your assets, change this if you want to expire all your assets. config.assets.version = ''1.0'' end end

Y aquí está mi archivo production.rb

# Full error reports are disabled and caching is turned on config.consider_all_requests_local = false config.action_controller.perform_caching = true # Enable Rails''s static asset server (Apache or nginx will not need this) config.serve_static_assets = true # Set expire header of 30 days for static files config.static_cache_control = "public, max-age=2592000" # Allow JavaScript and CSS compression config.assets.compress = true # Compress JavaScript by removing whitespace, shortening variable names, ... config.assets.js_compressor = :uglifier # Don''t fallback to assets pipeline if a precompiled asset is missed config.assets.compile = true # Generate digests for assets URLs config.assets.digest = true


Al parecer, Sass dejó de funcionar y me quedé sin paciencia, así que decidí no usarlo más. En lugar de hacer esto:

#theme.css.scss background-image:image-url(''image.png'');

Ahora simplemente estoy usando un archivo erb:

#theme.css.erb background-image:url(<%= asset_path ''image.png'' %>);

Acabo de perder un día entero por esto y no tengo idea de por qué, porque estaba funcionando bien ayer. Si alguien sabe qué causó esto y cómo puedo usar Sass nuevamente, por favor comente.


No deberías tener que eliminar este *= require tree . Desde application.css, coz te carga todos los estilos. solo agréguelo, y configure su archivo config/production.rb esta manera:

config.assets.precompile = %w{application.js}

y ejecute RAILS_ENV = activos de rake de producción: precompilación

EDITAR tratar de usar esta configuración:

config.assets.digest = true