UPDATE:ActionView :: Template :: errore (non è precompilato): su Heroku cedro
Si scopre che a volte results.image era nullo o "", quindi questo stava rompendo l'app perché la pipeline di asset cercavo un'immagine come "" e non trovandola. Al momento non visualizzo un'immagine se non ce n'è una, ma dovrò aggiungere un'immagine di default per le immagini mancanti ... che dovrebbe essere una soluzione più permanente.
ho un certo numero di SO domande su questo numero di Heroku cedro e del bene gasdotto Rails, e ho provato una serie di soluzioni, ma nessuno di loro funziona, ed è probabilmente perché il problema che ho sto avendo una ruga che non ho visto da nessun'altra parte.
La mia app utilizza Rails 3.2.6 e l'ho distribuita sullo stack di cedri di Heroku. È un'app di ricerca di base che ricerca un db postgres collegato tramite websolr, quindi quando carichi l'indice (indice # dell'indice) senza parametri [: q] .present? ottieni una casella di ricerca e questo funziona correttamente. Ma quando ho messo qualcosa nella casella di ricerca e premere invio, e carichi N ° indice di nuovo, ma questa volta cerca di visualizzare i risultati, ottengo:
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'
Cosa c'è di strano sul mio caso particolare contro altri che ho visto è la seguente riga:
ActionView::Template::Error (isn't precompiled):
Con tutte le altre domande come questa che ho visto, c'è un file css tra parentesi, ad esempio ("foo.css" non è precompilato), o nel mio caso sembra che dovrebbe essere ("index.css" non è precompilato). Ma qui è solo vuoto!
Questa è la mia distribuzione di staging che sto cercando di mettermi al lavoro, quindi ho provato a eseguire RAILS_ENV = asset rake staging: precompilare (quindi impegnando i risultati, ovviamente), ma questo non lo aggiusta . Ho anche provato a togliere la vista (notare la mancanza di uno stile reale lì). Niente funziona, e sono in perdita. Qualsiasi aiuto sarebbe molto apprezzato.
Per riferimento, ecco la mia 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
Qui ci sono le opzioni di configurazione nel mio config/file di 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
E qui sono le opzioni di configurazione nei miei ambienti/staging.rb file:
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
appena incontrato lo stesso problema. grazie mille! – rickypai