2014-07-06 143 views
1

i'n我的rails應用程序我改變頁面的html部分(本地主機:3000 /飼料),在文件index.html.erb我設置背景這種方式HTML和CSS的背景圖像

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> 
    <html> 

    <head> 

     <style type="text/css"> 
      body 
      { 
      background-image:url("../../assets/images/wwi.jpg"); 
      } 
     </style> 

    </head> 
</html> 

目錄設置是這樣的:

->app 
->assets 
    ->images 
    ->wwi.jpg 
->views 
    ->feeds 
    ->index.html.erb 

但是當我啓動rails服務器和去方言:3000 /供稿沒有背景(我有背景顏色沒有問題)

+0

您確保路徑是正確的? – Idris

回答

0

您沒有使用Rails資產管道的文檔內部的意見。如果你看一下文檔,它說

Asset pipeline concatenate assets, which can reduce the number of requests that a browser makes to render a web page. Web browsers are limited in the number of requests that they can make in parallel, so fewer requests can mean faster loading for your application

*所以,你應該用它和那首先刪除所有從您的佈局或視圖的樣式,你需要包括軌道在佈局文件application.css通過

<%= stylesheet_link_tag "application", media: "all" %> 

此標記將使軌使用的外觀爲您的風格里面資產/樣式表/ application.css。現在,你需要通過

*= require style 

要求您剛纔提出,包括您的風格style.css.erb現在你style.css.erb裏面你可以有你的風格是這樣的:

body{ 
    background-image: url(<%= asset_path 'wwi.png' %>) 
} 

更新:

如果你想用青菜代替那麼你的文件將是style.css.scss,並且可以使用軌道image-url幫手,讓你可以這樣做:

body{ 
    background-image: image-url('wwi.png'); 
} 

欲瞭解更多詳情,請參閱rails asset pipeline

0

使用資產管道時,路徑應相對於根假定

background-image:url("/assets/wwi.jpg");

圖像。

您也可以使用資產幫手

<%= asset_path 'wwi.png' %>

我建議你寫你的CSS閱讀資產管道

http://guides.rubyonrails.org/asset_pipeline.html

+2

第一個示例在生產模式下不起作用(將md5指紋添加到文件名中)。應該推薦使用'asset_path'。 – mus

+0

以及在何處以及如何使用 <%= asset_path 'wwi.png' %> – user3764449

+0

@ user3764449 http://guides.rubyonrails.org/asset_pipeline.html#css-and-erb – mus