Rails 6, webpacker: image_pack_tag отображает неверный путь к изображению, добавляет «assets /» в URI - PullRequest
0 голосов
/ 08 февраля 2020

Работа с новым приложением Rails 6 с помощью веб-упаковщика. Изображения хранятся в /app/frontend/images.

//added to /app/frontend/application.js

const images = require.context('../images', true)
const imagePath = (name) => images(name, true)

Конфигурация Webpacker:

/config/webpacker.yml contains:
default: &default
  source_path: app/frontend
  source_entry_path: packs
  public_root_path: public
  public_output_path: packs
  cache_path: tmp/cache/webpacker
  check_yarn_integrity: false
  webpack_compile_output: true

МОЯ ПРОБЛЕМА: image_pack_tag неправильно добавляет assets/ в путь к изображению.

<%= image_pack_tag 'media/images/AdminLTELogo.png', alt: 'AdminLTE Logo', class: "brand-image img-circle elevation-3", style: "opacity: .8" %>

Renders ... <img alt="AdminLTE Logo" class="brand-image img-circle elevation-3" style="opacity: .8" src="/assets/%2Fpacks%2Fmedia%2Fimages%2FAdminLTELogo-28f7e31d41f353b3aaff1236c7108479.png">

Удаление assets/ с пути приведет к успешной визуализации изображения.

Есть идеи, что можно добавить assets/ к пути к изображению?

1 Ответ

0 голосов
/ 10 февраля 2020

ПРИЧИНА: Незадолго до этой ошибки я создал модель под названием «актив». Каким-то образом функция resources :assets в моем файле rout.rb конфликтует с image_pack_tag, вставляя assets/ в путь для всех изображений. Я понял это, когда просто закомментировал строку resources :assets в моем файле rout.rb, и все изображения были загружены правильно.

РЕШЕНИЕ: Я назвал пространство в своей модели ресурсов, а также пространство имен в строке resources :assets в мой файл rout.rb Все изображения теперь загружаются правильно.

...