Lightbox2 в Rails 6 не загружается

#ruby-on-rails #lightbox2

#ruby-на-рельсах #lightbox2 #ruby-on-rails

Вопрос:

Я попытался добавить lightbox2 в свой проект rails, но это вообще не работает.

Я следил за readme на 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>
  

Я поместил это в свои инициализаторы / assets.rb:

 # Lightbox:
Rails.application.config.assets.precompile  = %w( lightbox/* )
  

Само представление работает, и URL-адреса изображений работают правильно. Но если я нажимаю на изображение, изображение открывается со своим собственным URL-адресом изображения, который сообщает мне, что лайтбокс вообще не работает. Похоже, js не загружается.

Что не так и как мне это исправить?

Ответ №1:

Каким-то образом я это исправил, и это работает. Я скопировал содержимое lightbox.js файл из репозитория github в отдельный файл в javascript/packs/lightbox.js

После этого я добавил reguire("packs/lightbox") в свой application.js и, наконец, я вызвал скрипт lightbox в моем application.html.erb вот так:

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

Есть ли вообще проблема в rails 6 с импортом js, который был где-то установлен gems?

Ответ №2:

config /initializers /assets.rb больше не является частью вашего приложения, потому что вы используете webpacker (javascript_pack_tag)