首页 > 解决方案 > Rails lightbox2 ActionController::RoutingError

问题描述

我正在尝试将 lightbox2 实现到一个相当简单的 rails 5 应用程序中,并且似乎收到以下错误:

ActionController::RoutingError (No route matches [GET] "/images/lightbox/bpo.jpg"):

我一直遵循以下步骤:https ://lokeshdhakar.com/projects/lightbox2/ & https://github.com/gavinkflam/lightbox2-rails

灯箱的所有图像都位于“图像/灯箱”文件夹中,图像正确显示在页面上,但是单击图像放大并调出灯箱模式后,日志中会显示上述路由错误并且没有图像出现。

gallery_controller.rb

def index
 @images = Dir.chdir(Rails.root.join('app/assets/images')) do
    Dir.glob('lightbox/*.jpg')
    end
  end

index.html.erb

<div class="jumbotron jumbotron-fluid">
  <div class="container">
    <div class="row">
        <% @images.each do |image| %>
          <div class="col-md-3">
            <a href='<%= "images/#{image}" %>' class="img-fluid" data-lightbox="my-images">
              <%= image_tag image, class: "img-fluid" %>
            </a>
          </div>
        <% end %>
      </div>
  </div>
</div>

<%= javascript_include_tag 'application', 'data-turbolinks-track': 'reload' %>在结束正文标记之前,以下内容已添加到我的 application.html.erb 文件 中。

非常感谢任何帮助,因为我对如何继续感到困惑。

标签: ruby-on-railsrubylightboxlightbox2

解决方案


我以前从未使用过 lightbox2,但如果是我,我会采用 3 种不同的解决方案

  1. 将“a”更改为“div”
  2. 从“a”中删除href
  3. 覆盖灯箱的事件处理程序以防止默认

希望其中任何一个都可以解决您的问题


推荐阅读