Ruby on rails 找不到Ruby on Rails映像资产
在我的Application.html.erb页面上,我有导航栏和页脚,以便在所有页面上共享它们。我引用了本页上的图像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/
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'
请看一看,这会让你省去很多头疼的事