2012-07-21 46 views
10

UPDATE:::的ActionView ::模板錯誤(不預編譯):在Heroku雪松

事實證明,有時results.image是零或「」,所以這是打破了應用程序,因爲管道資產正在尋找像「」的圖像而沒有找到它。現在,如果沒有圖像,我不會顯示圖像,但我必須爲缺失的圖像添加默認圖像......這應該是一個更持久的修復方法。


我有大量有關的Heroku雪松這個問題和Rails資產管道SO問題,我已經嘗試了一些解決方案,但他們沒有工作,這可能是因爲我的問題我的臉上有一種我從未見過的皺紋。

我的應用程序使用Rails 3.2.6,並將它部署在Heroku的雪松堆棧上。這是一個基本的搜索應用程序,通過websolr搜索附加的postgres數據庫,所以當你加載索引(索引#索引)沒有params [:q] .present?你會得到一個搜索框,這工作正常。但是,當我把東西在搜索框中,並點擊提交,並再次索引#指數負載,但這次嘗試顯示的結果,我得到:

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 =分段rake資產:預編譯(然後提交結果,當然),但那不能解決它。我甚至試圖剝離視圖(注意缺乏任何實際的樣式)。沒有任何工作,我不知所措。任何幫助將不勝感激。

供參考,這是我的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 

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

,這裏是我的環境中的配置選項/ 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

恰好碰到了同樣的問題。坦克很多! – rickypai 2013-01-22 20:09:51

回答

16

是否有機會在某處顯示空的圖像URL?你有沒有安裝CarrierWave的東西?

我從你的代碼image_tag result.image看到服務 - 這可能是空的嗎?

此線程應該解決這個問題: ActionView::Template::Error (isn't precompiled):

+0

我沒有安裝CarrierWave,但可能有一個圖像URL爲空。我會檢查併發布結果。 – 2012-07-22 16:49:05

+0

因此消除了零和空的圖像工作!我會發布更新。 – 2012-07-22 17:07:18

+0

甜蜜......與資產管道的美好時光... – cman77 2012-07-22 19:59:54

相關問題