找不到Ruby on Rails图像资产

时间:2017-05-30 19:12:00

标签: ruby-on-rails

在我的Application.html.erb页面上,我有了导航栏和页脚,以便在所有页面上共享它们。我正在这个页面上引用图像

 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

再次:图像引用为src =&#34; assets / img-1.jpg&#34;在我的application.html.erb上找到了,但只有当我在索引页面&#34; localhost:3000 /&#34;时,我做错了什么?

2 个答案:

答案 0 :(得分:0)

您必须使用rails assets helper来引用您的图像

= image_tag 'img-1.jpg'

请看一下here,这会让你很头疼。

答案 1 :(得分:-1)

您错过了/

它将是src="/assets/img-1.jpg"

适用于制作: 确保它在/public目录中,或者您使用asset_path。否则,在预编译资产进行生产后,您将无法看到它。