我的/ views / layouts /文件夹中有一个侧边栏文件,其头文件图像可在/ assets / images /访问。但是,当我转到localhost:3000/books/new
时,无法显示侧边栏标题图像。查看终端,它正在/ books / assets / images /
有没有办法快速修复此错误,而无需将图像复制到新文件夹中?
__ sidebar.html.haml
%img#menu-image{src: "assets/books.png"}
.pure-menu.pure-menu-open#menu-bottom.button-color
%ul
%li
=link_to 'Home', root_path
%li
=link_to 'About', about_path
%li
=link_to 'Find Textbooks', search_path
%li
=link_to 'List your Textbooks', new_book_path
application.html.erb
<!DOCTYPE html>
<html>
<head>
<title>Bookweb</title>
<%= stylesheet_link_tag "application", media: "all", "data-turbolinks-track" => true %>
<%= javascript_include_tag "application", "data-turbolinks-track" => true %>
<%= csrf_meta_tags %>
<%= favicon_link_tag 'favicon.ico' %>
</head>
<body>
<div class="pure-g-r" id="main-pad">
<div class="pure-u" id="menu">
<%= render 'layouts/sidebar' %>
</div>
<div class="pure-u-1" id="main">
<%= yield %>
</div>
</div>
</body>
</html>
答案 0 :(得分:1)
在Rails中,如果您需要在页面上引用资产,则应使用资产助手。在这种情况下,您可以更改行:
%img#menu-image{src: "assets/books.png"}
到
%img#menu-image{src: "#{image_path('books.png')}"}
答案 1 :(得分:1)
Rails附带了大量的视图助手,可以帮助您轻松生成HTML。其中之一是image_tag
。
像这样使用它:= image_tag 'books.png', :id => 'menu-image'