2011-09-21 47 views
1

我正在使用Ruby on Rails 3.0.10,並將我的RoR升級到版本3.1.0。我下面的Upgrading to Rails 3.1 railscast和時間07:04他開始談論有關加載圖像文件的問題...升級到Ruby on Rails 3.1:如何解決CSS文件中的圖片加載問題?

在幾句話:

[...]這(即是,圖像加載 - 更多信息here)將無法正常工作,因爲我們的應用程序圖像不再位於/ public/images目錄中。最簡單的解決方案似乎是將映像的URL從/images/railscasts_logo.png更改爲/assets/railscasts_logo.png,雖然這看起來可以在開發模式下工作,但我們會遇到生產中的問題。 [...]我們應該總是使用輔助方法。這將在開發和生產模式下正確鏈接圖像。 [...]

我的問題是在我的CSS文件在那裏我之類的語句下面

.a_class { 
    ... 
    background-image: url("/images/avatar.png"); 
    ... 
} 

的是,還有它應該是,不正確加載圖像文件。

如何在Rails 3.1中解決這個問題?

回答

4

您可能會看到導軌,尤其是資產流水線上的零件(http://guides.rubyonrails.org/asset_pipeline.html)。

在第2.2.2 CSS和SASS你會發現下面的解釋:

當使用資產管線,路徑資產必須重新編寫和青菜-Rails提供_url和_path助手爲以下資產類別:圖像,字體,視頻,音頻,JavaScript,樣式表。

image-url("rails.png") becomes url(/assets/rails.png) 
image-path("rails.png") becomes "/assets/rails.png". 

的更通用的形式也可以使用,但資產路徑和類都必須被指定:

asset-url("rails.png", image) becomes url(/assets/rails.png) 
asset-path("rails.png", image) becomes "/assets/rails.png" 

還有通過添加.erb延伸,而不是一個alternavtive方式默認的.sass,在2.2.1節中描述。但無論如何,我更喜歡無論如何。

編輯:

您可能還需要在這裏檢查this post上計算器。

相關問題