2017-05-30 14 views
-4

私のApplication.html.erbページには、すべてのページにわたって共有されるようにナビゲーションバーとフッターがあります。私はこのページの画像を参照しています。Ruby on Rails画像アセットが見つかりません

src="assets/img-1.jpg" 

これらはインデックスページ "localhost: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 

:私のapplication.html.erbのSRC = "資産/ IMG-1.JPG" として参照されるイメージ私が索引ページ "localhost:3000 /"に入っているときだけ、間違っていますか?

答えて

0

、それはあなたに多くの頭痛の種を保存します。

-1

/がありません。

src="/assets/img-1.jpg"です。生産のために

は、それが/publicディレクトリにありますか、asset_pathを使用してください。それ以外の場合は、プロダクションのためにアセットをプリコンパイルした後には表示されません。あなたは、あなたのイメージ

= image_tag 'img-1.jpg' 

を参照するために、レール資産ヘルパーを使用し、見た目hereを持っている必要がありますしてください

関連する問題