Mi sitio web solía estar funcionando y Heroku precompilaba los activos y todo. Ahora, aparentemente de la nada, comencé a obtener rake aborted! stack level too deep
en la implementación.activos de rake: precompilación no funciona en heroku
Eliminación de la línea de mi archivo *= require_tree .
application.css parece solucionar 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 las imágenes están rotos (estoy usando la imagen-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 Gemfile:
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
¡Guau, eso es todo! ¡Eso lo solucionó! La cosa es que soy un novato y pensé que esta línea 'gema 'sass-rails'," ~> 3.1.0 "' significaba que mi versión de gema estaba bloqueada, pero al parecer ese chiflado hachís (o como se llame) vamos a la gema se actualizaráY tal vez eso es lo que sucedió, quizás internamente Heroku cambió algo y de repente mi aplicación dejó de funcionar. Cosas realmente extrañas que me hicieron perder todo un día por nada. Para cualquiera que pueda terminar aquí, la solución fue cambiar esa línea a 'gema 'sass-rails'," 3.1.4 "'. – Ashitaka
Gracias - GRANDE ayuda - el mismo problema, de la nada. Eso fue lo último que necesitaba ver hoy fue fracasar empujar al heroku. – jpwynn
¡Por favor, toma mi voto popular! ¡Gracias! – hajpoj