rails图像从公用文件夹加载,但不从图像加载

时间:2015-12-28 20:13:53

标签: html ruby-on-rails image ruby-on-rails-4

我是初学者,试图在我的rails视图中加载一些图像。当我尝试从资源中的images文件夹加载图像时,我在视图上看到一个损坏的图像图标,并在控制台中看到ActionController::RoutingError (No route matches [GET] "/assets/images/pp1.JPG")。从公用文件夹加载图像时不会发生这种情况。我怎样才能从images文件夹中调用图像 - 这是我用<a>标签调用它的方式吗?任何澄清将非常感谢!

我对该观点的看法是:

<% provide(:title, "Imágenes") %>
<div class="container">
  <h1>Imágenes</h1>
  <p>Clic en la imagen para abrir en una pestaña nueva.</p>
  <div class="gallery">
    <div class="row">
      <div class="col-lg-3">
        <a href="pp1.JPG" target="_blank">
          <img src="pp1.JPG" alt="alt 1" width="200px" class="img-thumbnail">
        </a>
      </div>
      <div class="col-lg-3">
        <a href="peppe2.jpg" target="_blank">
          <img src="peppe2.jpg" alt="alt 2" width="200px" class="img-thumbnail">
        </a>
      </div>
      <div class="col-lg-3">
        <a href="peppe3.jpg" target="_blank">
          <img src="peppe3.jpg" alt="alt 3" width="200px" class="img-thumbnail">
        </a>
      </div>
      <div class="col-lg-3">
        <a href="peppe4.jpg" target="_blank">
          <img src="peppe4.jpg" alt="alt 4" width="200px" class="img-thumbnail">
        </a>
      </div>
    </div> <!---row1 ends -->

    <div class="row">
      <div class="col-lg-3">
        <a href="peppe5.jpg" target="_blank">
          <img src="peppe5.jpg" alt="alt 5" width="200px" class="img-thumbnail">
        </a>
      </div>
      <div class="col-lg-3">
        <a href="peppe6.jpg" target="_blank">
          <img src="peppe6.jpg" alt="alt 6" width="200px" class="img-thumbnail">
        </a>
      </div>
      <div class="col-lg-3">
        <a href="peppe7.jpg" target="_blank">
          <img src="peppe7.jpg" alt="alt 7" width="200px" class="img-thumbnail">
        </a>
      </div>
      <div class="col-lg-3">
        <a href="peppe8.jpg" target="_blank">
          <img src="peppe8.jpg" alt="alt 8" width="200px" class="img-thumbnail">
        </a>
      </div>
    </div> <!---row2 ends -->
  </div>
</div>

第一张图片(pp1.JPG)位于images文件夹中,不加载;其他人都在公共文件夹中,并加载。

2 个答案:

答案 0 :(得分:1)

使用image_tag。它会为您创建<img src= ... >位。

要回答关于您当前代码未找到文件的原因的问题,image_tag会在src路径前添加/assets/作为默认值,因此您最终会像<img src='/assets/peppe3.png/'>这样的东西。如果您愿意,可以将文件路径传递给image_tag以覆盖它。更多信息:http://api.rubyonrails.org/classes/ActionView/Helpers/AssetTagHelper.html#method-i-image_tag

答案 1 :(得分:1)

HTML

<div class="col-lg-3">
  <%= link_to image_path('pp1.JPG'), target: '_blank' do %>
    <%= image_tag('pp1.JPG', alt: 'alt 1', class: 'img-thumbnail my-class') %>
  <% end %>
</div>
...etc...

CSS

.my-class {
  width: 200px;
}