Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 找不到Ruby on Rails映像资产_Ruby On Rails - Fatal编程技术网

Ruby on rails 找不到Ruby on Rails映像资产

Ruby on rails 找不到Ruby on Rails映像资产,ruby-on-rails,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/

在我的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
class PagesController

再次:在我的application.html.erb上找到了引用为src=“assets/img-1.jpg”的图像,但只有当我在索引页“localhost:3000/”中时,我才知道我做错了什么?

您缺少了一个
/

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

用于生产:
确保它位于
/public
目录中,或者使用
资产路径
。否则,在预编译用于生产的资源后,您将看不到它。

您必须使用rails资源帮助程序来引用您的映像

= image_tag 'img-1.jpg'
请看一看,这会让你省去很多头疼的事