Rails 灯箱2 ActionController::RoutingError
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
Lightbox 的所有图像都位于 "images/lightbox" 文件夹中,并且图像可以正确显示在页面上,但是在单击图像放大并调出 Lightbox 模式时,上述路由错误会显示在日志中& 没有图像出现。
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>
以下内容已添加到我的 application.html.erb 文件中
<%= javascript_include_tag 'application', 'data-turbolinks-track': 'reload' %>
就在结束正文标记之前。
非常感谢任何帮助,因为我对如何继续感到困惑。
我以前从未使用过lightbox2
但如果是我,我会采取 3 种不同的解决方案
- 将"a"改为"div"
- 从 "a"
中删除 href
- 覆盖灯箱的事件处理程序以防止默认
希望其中任何一个可以解决您的问题
试试这个代码片段。
<div class="jumbotron jumbotron-fluid">
<div class="container">
<div class="row">
<% @images.each do |image| %>
<div class="col-md-3">
<a href='<%= image_path(image) %>' class="img-fluid" data-lightbox="my-images">
<%= image_tag image, class: "img-fluid" %>
</a>
</div>
<% end %>
</div>
</div>
</div>
您需要为 href
使用 image_path
辅助方法,因为资产来自资产管道。
我正在尝试将 lightbox2 实现到一个相当简单的 rails 5 应用程序中,但似乎出现以下错误:
ActionController::RoutingError (No route matches [GET] "/images/lightbox/bpo.jpg"):
我一直在遵循以下步骤:https://lokeshdhakar.com/projects/lightbox2/ & https://github.com/gavinkflam/lightbox2-rails
Lightbox 的所有图像都位于 "images/lightbox" 文件夹中,并且图像可以正确显示在页面上,但是在单击图像放大并调出 Lightbox 模式时,上述路由错误会显示在日志中& 没有图像出现。
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>
以下内容已添加到我的 application.html.erb 文件中
<%= javascript_include_tag 'application', 'data-turbolinks-track': 'reload' %>
就在结束正文标记之前。
非常感谢任何帮助,因为我对如何继续感到困惑。
我以前从未使用过lightbox2 但如果是我,我会采取 3 种不同的解决方案
- 将"a"改为"div"
- 从 "a" 中删除 href
- 覆盖灯箱的事件处理程序以防止默认
希望其中任何一个可以解决您的问题
试试这个代码片段。
<div class="jumbotron jumbotron-fluid">
<div class="container">
<div class="row">
<% @images.each do |image| %>
<div class="col-md-3">
<a href='<%= image_path(image) %>' class="img-fluid" data-lightbox="my-images">
<%= image_tag image, class: "img-fluid" %>
</a>
</div>
<% end %>
</div>
</div>
</div>
您需要为 href
使用 image_path
辅助方法,因为资产来自资产管道。