Rails 6中的Lightbox2未加载

问题描述

我试图将lightBox2添加到我的rails项目中,但是它根本不起作用。

我遵循了github上的自述文件

在我的application.css中,我添加了以下内容

 *= require lightBox

在我的custom.css.scss中,我添加了以下内容

@import 'lightBox';

在已安装的jquery和我的javascript / packs / application.js中,我添加了以下内容

require('jquery')
require("lightBox")

在我的表演视图中,我添加了以下内容

<table>
  <% @images.each do |image| %>
  <tr><td>
    <%= link_to image.img_url,data: { lightBox: @gallery.id } do %>
    <%= image_tag image.img_url %>
    <% end %>
    </tr><td>
  <% end %>
</table>

这是我的application.html.erb文件

<html>
  <head>
    <title>Picturegallery</title>
    <%= csrf_Meta_tags %>
    <%= csp_Meta_tag %>

    <%= stylesheet_link_tag 'application',media: 'all','data-turbolinks-track': 'reload' %>
    <%= javascript_pack_tag 'application','data-turbolinks-track': 'reload' %>
  </head>

  <body>
    <%= yield %>
    <%= javascript_pack_tag 'application','data-turbolinks-track': 'reload' %>
  </body>
</html>

我确实将其放在了自己的initializers / assets.rb中:

# LightBox:
Rails.application.config.assets.precompile += %w( lightBox/* )

视图本身正在运行,图像URL正常运行。但是,如果我单击一个图像,该图像会以其自己的图像URL打开,这告诉我,灯箱根本无法工作。看来,js没有加载。

出什么问题了,我该如何解决

解决方法

我以某种方式修复了它,并且它起作用了。我将lightbox.js文件的内容从github存储库复制到了javascript / packs / lightbox.js

中的单独文件中

此后,我将reguire("packs/lightbox")添加到了application.js中,最后我像这样在我的application.html.erb中调用了灯箱脚本:

<body>
    <%= yield %>
    <%= javascript_pack_tag 'lightbox' %>
  </body>

在rails 6中,一般来说,导入由gems安装在某个地方的js是否存在问题?

,

config/initializers/assets.rb 不再是您应用的一部分,因为您正在使用 webpacker (javascript_pack_tag)