2012-07-21 11 views
10

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 
+0

acabo de encontrar con el mismo problema. ¡muchas gracias! – rickypai

Respuesta

16

¿Existe la posibilidad de que tenga una URL de imagen vacía en alguna parte? ¿Tiene algo así como CarrierWave instalado?

Veo desde su código image_tag result.image sirve - ¿es posible esto es nulo?

Este hilo debe resolverlo: ActionView::Template::Error (isn't precompiled):

+0

No tengo instalado CarrierWave, pero es posible que una de las URL de imagen esté vacía. Verificaré eso y publicaré los resultados. –

+0

¡Eliminando así las imágenes nulas y vacías trabajadas! Voy a publicar una actualización. –

+0

Dulce ... buenos tiempos con el canal de activos ... – cman77

Cuestiones relacionadas