2017-05-30 111 views
-4

在我的Application.html.erb頁面上,我有我的導航欄和頁腳,以便它們在所有頁面上共享。我此頁面上引用圖片爲使Ruby on Rails Image Assets not found

src="assets/img-1.jpg" 

,他們出現,但只有在我的索引頁「本地主機:3000」。

當我瀏覽到這些頁面:

localhost:3000/pages/contact 
localhost:3000/pages/home   "index page" 
localhost:3000/pages/portfolio 
localhost:3000/pages/schedule 

圖像沒有被發現。下面是我的路線設置:

Rails.application.routes.draw do 

    root 'pages#home' 
    get "/pages/:page" => "pages#show" 

end 

這裏是我的網頁控制器:

class PagesController < ApplicationController 

    def show 
    if valid_page? 
     render template: "pages/#{params[:page]}" 
    else 
     render file: "public/404.html", status: :not_found 
    end 
    end 

private 
    def valid_page? 
    File.exist?(Pathname.new(Rails.root + "app/views/pages/# {params[:page]}.html.erb")) 
    end 

end 

還是那句話:作爲SRC = 「資產/ IMG-1.JPG」 我application.html.erb引用的圖像正在被發現,但只有當我在索引頁「localhost:3000 /」,我做錯了什麼?

回答

0

必須使用導軌資產傭工來引用您的圖像

= image_tag 'img-1.jpg' 

並請看看here,它會爲你節省很多頭痛。

-1

您錯過了/。它將是src="/assets/img-1.jpg"

對於生產: 確保它在/public目錄或使用asset_path。否則,在爲生產預編譯資產後,您不會看到它。