Ruby on rails ActionView::Template::Error(未预编译):在heroku cedar上

Ruby on rails ActionView::Template::Error(未预编译):在heroku cedar上,ruby-on-rails,heroku,asset-pipeline,Ruby On Rails,Heroku,Asset Pipeline,更新: 结果表明,有时results.image为nil或“”,因此这会破坏应用程序,因为资产管道正在查找类似“”的图像,但没有找到它。现在,如果没有图像,我不会显示图像,但我必须为缺少的图像添加默认图像。。。这应该是一个更持久的解决办法 关于heroku cedar和Rails资产管道这一问题,我有很多疑问,我尝试了很多解决方案,但都不管用,这可能是因为我遇到的问题有一个我在其他任何地方都没有见过的问题 我的应用程序使用Rails 3.2.6,我已经在Heroku的cedar堆栈上部署了它。

更新:

结果表明,有时results.image为nil或“”,因此这会破坏应用程序,因为资产管道正在查找类似“”的图像,但没有找到它。现在,如果没有图像,我不会显示图像,但我必须为缺少的图像添加默认图像。。。这应该是一个更持久的解决办法


关于heroku cedar和Rails资产管道这一问题,我有很多疑问,我尝试了很多解决方案,但都不管用,这可能是因为我遇到的问题有一个我在其他任何地方都没有见过的问题

我的应用程序使用Rails 3.2.6,我已经在Heroku的cedar堆栈上部署了它。它是一个基本的搜索应用程序,可以通过websolr搜索附加的postgres db,因此当您加载没有参数[:q]的索引(index#index)时,是否显示?你会得到一个搜索框,这个很好用。但当我在搜索框中放入一些内容并点击提交,然后再次加载索引,但这次尝试显示结果时,我得到:

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'
与我所见过的其他人相比,我的特殊案例的奇怪之处在于以下几行:

ActionView::Template::Error ( isn't precompiled):
在我看到的所有其他类似问题中,括号中有一个css文件,即(“foo.css”未预编译),或者在我的例子中,它似乎应该是(“index.css”未预编译)。但在这里它只是一片空白

这是我的登台部署,我正试图开始工作,所以我试着运行它 RAILS_ENV=staging rake assets:precompile(当然,然后提交结果),但这并不能解决这个问题。我甚至试着去掉视图中的样式(注意这里没有任何实际的样式)。什么都不管用,我也不知所措。任何帮助都将不胜感激

以下是我的档案供参考:

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
以下是我的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
以下是my environments/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

您是否有可能在某个地方有一个空的图像URL?您是否安装了类似CarrierWave的设备

我从你的代码
image\u标签结果中看到。image
服务-这可能是空的吗

此线程应解决此问题:

我没有安装CarrierWave,但其中一个图像URL可能为空。我会检查并发布结果。因此,消除零和空图像是有效的!我将发布更新。刚刚遇到相同的问题。很多坦克!