ACTUALIZACIÓN:ActionView :: :: Plantilla de error (no se compilan previamente): en heroku cedro
Resulta que a veces results.image fue nula o "", por lo que este se rompía la aplicación porque la tubería de activos estaba buscando una imagen como "" y no la encontraba. En este momento, no mostraré una imagen si no hay una, pero tendré que agregar una imagen predeterminada para las imágenes que faltan ... que debería ser una solución más permanente.
Tengo un número de las preguntas sobre este tema de cedro heroku y la tubería de activos rieles, y he intentado varias soluciones, pero ninguna de ellas funciona, y es probable que sea debido a que el problema que Estoy teniendo una arruga que no he visto en ningún otro lado.
Mi aplicación utiliza Rails 3.2.6 y la he desplegado en la pila de cedros de Heroku. Es una aplicación de búsqueda básica que busca un db postgres adjunto a través de websolr, de modo que cuando cargue el índice (index # index) sin params [: q] .present? obtienes un cuadro de búsqueda, y esto funciona bien. Pero cuando pongo algo en el cuadro de búsqueda y pulse enviar, y el índice N.º cargas de nuevo, pero esta vez intenta mostrar los resultados, me sale:
app[web.1]: Completed 500 Internal Server Error in 440ms
app[web.1]:
app[web.1]: ActionView::Template::Error (isn't precompiled):
app[web.1]: 12: - @results.each do |result|
app[web.1]: 13: %li
app[web.1]: 14: %div
app[web.1]: 15: = image_tag result.image
app[web.1]: 16: %div
app[web.1]: 17: = result.title
app[web.1]: 18: %div
app[web.1]: app/views/index/index.html.haml:15:in `block in _app_views_index_index_html_haml___4350601325072829986_32734540'
app[web.1]: app/views/index/index.html.haml:12:in _app_views_index_index_html_haml___4350601325072829986_32734540'
Cuál es extraño sobre mi caso particular, frente a otros que he visto es la siguiente línea:
ActionView::Template::Error (isn't precompiled):
Con todas las otras preguntas de este tipo que he visto, hay un archivo CSS en el paréntesis, es decir ("foo.css" no se compilarán previamente), o en mi caso parece que debería ser ("index.css" no está precompilado). ¡Pero aquí está en blanco!
Este es mi despliegue provisional que estoy tratando de ponerme a trabajar, por lo que he intentado ejecutar RAILS_ENV = almacenamiento en etapas activos: precompila (luego confirma los resultados, por supuesto), pero eso no lo soluciona . Incluso intenté quitar la vista (note la falta de un estilo real allí). Nada funciona, y estoy perdido. Cualquier ayuda sería muy apreciada.
Para referencia, aquí es mi Gemfile:
source 'https://rubygems.org'
gem 'rails', '3.2.6'
gem 'pg'
gem 'haml-rails'
gem 'mongoid'
gem 'sunspot_rails', '~> 1.3.0'
gem 'sunspot_solr'
# Gems used only for assets and not required
# in production environments by default.
group :assets do
gem 'sass-rails', '~> 3.2.3'
gem 'coffee-rails', '~> 3.2.1'
gem 'uglifier', '>= 1.0.3'
end
gem 'jquery-rails'
group :development do
gem 'heroku_san'
gem 'annotate'
gem 'awesome_print'
end
group :development, :test do
gem 'rspec-rails'
end
group :test do
gem 'cucumber-rails', :require => false
gem 'capybara'
gem 'database_cleaner'
gem 'spork'
gem 'launchy'
end
group :staging, :production do
gem 'thin'
end
Estas son las opciones de configuración en mi archivo config/application.rb:
config.encoding = "utf-8"
config.filter_parameters += [:password]
config.active_support.escape_html_entities_in_json = true
config.active_record.whitelist_attributes = true
config.assets.enabled = true
config.assets.version = '1.0'
config.assets.compile = true
Y aquí están las opciones de configuración en mis entornos/archivo staging.rb:
config.cache_classes = true
config.consider_all_requests_local = false
config.action_controller.perform_caching = true
config.serve_static_assets = false
config.assets.compress = true
config.assets.compile = true
config.assets.precompile += ['index.css.scss']
config.assets.digest = true
config.i18n.fallbacks = true
config.active_support.deprecation = :notify
acabo de encontrar con el mismo problema. ¡muchas gracias! – rickypai