2014-07-06 47 views
1

在我的應用程序的索引頁上工作,出於某種原因,我添加的bg-image無法呈現。然而,我所調用的所有其他圖像文件(但不是在CSS中調用,就像這樣)無法在Rails中顯示CSS bg

它在開發中顯示完美,但在生產中不顯示。

我碰到下面的錯誤在我的Heroku的日誌:

ActionController::RoutingError (No route matches [GET] "/assets/ctabackground.png"): 

我的CSS:

#cta { 
text-align:center; 
height:600px; 
width:100%; 
background:url('ctabackground.png') no-repeat $light-green; 
h1, h2 { 
color:#fff; 
} 
h2 { 
    letter-spacing:2px; 
    font-weight:300; 
} 
} 

文件就在於資產/圖像/作爲ctabackground.png

什麼問題這裏?

回答

0

您需要使用rails asset_path獲取正確的url。嘗試:

background-image: url(<%= asset_path 'ctabackground.png' %>) no-repeat $light-green; 

更新:

由於您使用的青菜就可以使用軌道image-url幫手

background-image: image-url('ctabackground.png') no-repeat $light-green; 
+0

是的,沿着這些線路認爲是孔唯一的問題是,它在我的.css.scss文件,因此它不運行rails代碼。 – user2755537

+0

@ user2755537哦,但是在生產中,rails會預編譯所有資產,並且從內容中生成一個MD5,所以您將無法訪問像「assets/images/image.png」這樣的路徑,這就是爲什麼我們使用asset_path來創建合適的URL。如果你不想使它成爲一個erb文件,那麼我會建議使用image_tag而不是使用你的圖像作爲背景 – Mandeep

+0

不知道!然後我學到了新東西:)仍然無法解決當前問題。 – user2755537