放在app/assets/images下的圖片該怎麼使用呢?在實際佈署後,Rails會將檔案名稱加以編碼,例如rails.png會變成rails-bd9ad5a560b5a3a7be0808c5cd76a798.png。這麼做的原因是當圖片有變更的時候,編碼就會不同而有不同的檔名,這樣就可以避免瀏覽器快取到舊的檔案。也因為檔案名稱會變動,所以放在app/assets/images下的圖片,要用的時候就沒有辦法寫死檔名。在一般的View中,可以使用image_tag這個Helper:
<%= image_tag("rails.png") %>
如果在CSS裡的話,有兩種辦法:一是將檔案命名為erb結尾,例如app/assets/stylesheets/main.css.erb,然後使用asset_path這個Helper:
h1 {
background-image: url('<%= asset_path("rails.png") %>');
}
另一種方法是使用Sass或SCSS語法。其中SCSS相容於CSS。例如命名為app/assets/stylesheets/main.css.scss,然後使用image-url這個Sass提供的方法:
h1 {
background-image: image-url("rails.png")
}
如果是js檔案中想要拿圖片的位置,就只能用js.erb的格式,然後內嵌asset_path Helper方法了。
本文介绍了在Rails應用中如何正確地引用app/assets/images文件夹下的圖片。包括在View中使用image_tag,在CSS中使用asset_path或image-url,以及在JS文件中调用asset_path的方法。
228

被折叠的 条评论
为什么被折叠?



