2012-11-29 50 views
3

我最近將一箇舊的應用程序升級到了Ruby on Rails 3.2.9。同時使資產管道,我改變了我的css.scss文件css.scss.erb,這樣我可以使用傭工只加載了指紋的圖像文件,像這樣:ERB未被資產管道導入

`background: url(<%= asset_path "wishlist.png" %>)` 

這適用於獨立的文件,但是當css.scss.erb文件有由screen.css.scss進口,所以返回以下錯誤:

`Invalid CSS after "...d: url(": expected ")", was "<%= asset_path ..." 

我想就這一question的所有建議,但同時使應用程序加載指紋的文件沒有人可以避免的錯誤。

任何解決方案?

在此先感謝。

回答

2

問題是Ruby on Rails Guide to the Asset Pipeline上提供的sass-helpers使用連字符而不是下劃線。改變一切,以image_path,而不是image-path(等),它應該做工精細,喜歡上了這:

background: url(image_path("wishlist.png"));

0

它不是一個直接的解決方案,但如果你使用的是青菜,軌道,那麼你可以使用由它提供的資產路徑幫手,就像描述here

+0

我已經試過了,並且即使該應用程序不破,它使用的圖像而不是指紋。 爲防萬一你注意到我做錯了什麼,我正在用這種方式實現: 'background:url(asset-path(「wishlist.png」,image))' 或 'background:url image-path(「wishlist.png」))' –

+0

它只在生產中有效,您是否在該模式下測試過它? – pkubicki

+0

是的。正如我所說的,該應用程序不會中斷並且「rake資產:預編譯」運行正常,但它仍然使用非指紋版本的圖像。 –

0

嘗試給這個鏈接一個鏡頭: http://guides.rubyonrails.org/asset_pipeline.html

你也應該檢查你的寶石是否更新。 嘗試添加「負載‘部署/資產’」你Capfile(不帶引號)

如果上述作品,請嘗試在開發ENV關閉調試: config.assets.debug = FALSE(做這對你的環境/ development.rb)

這樣,你可以嘗試更自由地檢查代碼,而無需部署

希望任何這有助於中。問題解決後分享結果! ;)

+0

你可以嘗試的另一件事是停止使用鏈輪的CSS。只用於JS。您可以使用SASS @import語句而不是「require」 –