2011-09-11 34 views
0

我剛將我的Rails應用程序升級到3.1,並且正在使用新的資產管道。在管道到位的情況下,您的應用程序中所做的任何靜態引用都必須使用rails幫助程序方法,即asset_path(...),img_tag()等,這是必不可少的。修復靜態引用在我的CSS文件?如何在Rails 3.1應用程序中處理CSS中的圖像引用

回答

2

在Rails的SASS文件,有一個image-url()功能,您可以使用像這樣:

.page { 
    background: #eee image-url('somefile.png'); 
} 

Rails會尋找所有資產圖像目錄,文件,如app/assets/images/somefile.png

查看readme for sass-rails瞭解更多幫手方法以及Asset Pipeline Rails guide以獲得進一步的文檔和解釋。

+0

謝謝克里斯,似乎你的答案可能是正確的。請原諒我缺乏這方面的知識,因爲這是我第一次使用Rails 3.1和SCSS。我將css文件的ext文件更改爲.css.scss,然後運行rake資源:預編譯,但得到了一條錯誤消息,通知我其中一個圖片未預編譯。還有什麼提示?再次感謝。 – Bnjmn

+0

我對它也很新,所以我只能猜測是什麼原因導致了這個錯誤。我的猜測是,如果你的'image-url()'圖像(在你的scss文件中引用)不在'assets/images'目錄(或子目錄)中,你會得到那個錯誤。只是猜測,但。 – Chris

+0

感謝您的迴應,我確實擁有assets/images文件夾中的圖片,應該早一點提及。 – Bnjmn

0

如果你在引擎或插件中工作,這可能無法正常工作。在任何情況下,你總是可以使用通用的方法:

asset-url("rails.png", image) 
相關問題