2012-06-17 126 views
20

在生產(Heroku的),我收到以下錯誤:::的ActionView ::模板錯誤(不預編譯):

Started GET "/articles/1" for 50.134.181.231 at 2012-06-17 00:37:35 +0000 
2012-06-17T00:37:35+00:00 app[web.1]: ActionView::Template::Error (isn't precompiled): 
2012-06-17T00:37:35+00:00 heroku[router]: GET wandr.com/articles/1 dyno=web.1 queue=0 wait=0ms service=497ms status=500 bytes=728 
2012-06-17T00:37:35+00:00 app[web.1]: 
2012-06-17T00:37:35+00:00 app[web.1]:  74: = image_tag @article.featured_photo_url(:sm).to_s 
2012-06-17T00:37:35+00:00 app[web.1]:  75: 
2012-06-17T00:37:35+00:00 app[web.1]:  77: = image_tag @article.background_photo_url(:md).to_s 
2012-06-17T00:37:35+00:00 app[web.1]:  76: %p 
2012-06-17T00:37:35+00:00 app[web.1]:  78: %p 
2012-06-17T00:37:35+00:00 app[web.1]:  79: = image_tag @article.cover_photo_url(:md).to_s 
2012-06-17T00:37:35+00:00 app[web.1]:  80: 
2012-06-17T00:37:35+00:00 app[web.1]: app/views/articles/show.html.haml:77:in `_app_views_articles_show_html_haml__1847247375488199378_48105500' 
2012-06-17T00:37:35+00:00 app[web.1]: 
2012-06-17T00:37:35+00:00 app[web.1]: app/controllers/articles_controller.rb:21:in `show' 
2012-06-17T00:37:35+00:00 app[web.1]: 
2012-06-17T00:37:35+00:00 app[web.1]: Processing by ArticlesController#show as HTML 
2012-06-17T00:37:35+00:00 app[web.1]: Rendered articles/show.html.haml within layouts/admin (420.5ms) 
2012-06-17T00:37:35+00:00 app[web.1]: Parameters: {"id"=>"1"} 
2012-06-17T00:37:35+00:00 app[web.1]: Completed 500 Internal Server Error in 486ms 

我運行的Rails 3.2.6,包括ActionPack的3.2 0.6而且我認爲他有這個修復此問題:https://github.com/rails/rails/commit/6bb86e1f3f7f9e11ee1c056d8742125173ecbce1

我也試過這樣:"ActionView::Template::Error (isn't precompiled)" raised on "image_tag nil"

基本上,只要這個頁面上的圖像的一個不存在,它拋出這個錯誤。如果我上傳圖片,它可以正常工作。有任何想法嗎?

感謝, --mark

+0

似乎修復只處理'「」'不'nil' – lulalala

回答

46

我假設你正在使用類似CarrierWave來處理文件上傳?您可以在上傳類指定一個默認的圖像處理程序:

https://github.com/jnicklas/carrierwave#providing-a-default-url

class MyUploader < CarrierWave::Uploader::Base 
    def default_url 
    "/images/fallback/" + [version_name, "default.png"].compact.join('_') 
    end 
end 

這將輸出的默認圖像,而不是試圖訪問稱爲不存在的文件「」在資產管道。

+0

這是否解決了這個問題? – cman77

+3

嗨Jamon,它解決了我的問題。謝謝。 – Ben

+0

它解決了顯示問題,但它破壞了carrierwave_direct形式,因爲策略密鑰被default_url覆蓋並被amazon s3拒絕。因此,我沒有提供default_url,而是在顯示視圖之前檢查圖像是否存在 – Homan

相關問題