Изображение не найдено с Rails 6 и веб-пакетом - PullRequest
0 голосов
/ 12 февраля 2020
Rails 6
Webpacker

В моем приложении / javascript / packs / application. js у меня есть следующее:

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

и в папке app / javascript / images я добавил изображение:

my_company_logo.svg

Я пытаюсь использовать это изображение в виде:

= image_pack_tag 'my_company_logo'

В webpacker.yml у меня есть следующее:

webpack_compile_output: true
compile: true

И я перезапускаю свое приложение

Однако, когда я пытаюсь запустить приложение, я получаю следующее сообщение об ошибке:

Webpacker can't find my_company_logo in /myapp/public/packs/manifest.json. Possible causes:
1. You want to set webpacker.yml value of compile to true for your environment
   unless you are using the `webpack -w` or the webpack-dev-server.
2. webpack has not yet re-run to reflect updates.
3. You have misconfigured Webpacker's config/webpacker.yml file.
4. Your webpack configuration is not creating a manifest.
Your manifest contains:
{
  "application.js": "/packs/js/application-0c5dbf084c0853e7bb12.js",
  "application.js.map": "/packs/js/application-0c5dbf084c0853e7bb12.js.map",
  "entrypoints": {
    "application": {
      "js": [
        "/packs/js/application-0c5dbf084c0853e7bb12.js"
      ],
      "js.map": [
        "/packs/js/application-0c5dbf084c0853e7bb12.js.map"
      ]
    },
    "books": {
      "js": [
        "/packs/js/books-afabcf18be852ccbec8b.js"
      ],
      "js.map": [
        "/packs/js/books-afabcf18be852ccbec8b.js.map"
      ]
    }
  },
  "media/images/my_company_logo.svg": "/packs/media/images/my_company_logo-7f2088787060688b66225e0671589919.svg",
  "media/webfonts/fa-solid-900.eot": "/packs/media/webfonts/fa-solid-900-89e02bae.eot",
  "media/webfonts/fa-solid-900.svg": "/packs/media/webfonts/fa-solid-900-0724bb8b.svg",
  "media/webfonts/fa-solid-900.ttf": "/packs/media/webfonts/fa-solid-900-75f38a15.ttf",
  "media/webfonts/fa-solid-900.woff": "/packs/media/webfonts/fa-solid-900-cdfec5cf.woff",
  "media/webfonts/fa-solid-900.woff2": "/packs/media/webfonts/fa-solid-900-55eb2a60.woff2",
  "books.js": "/packs/js/books-afabcf18be852ccbec8b.js",
  "books.js.map": "/packs/js/books-afabcf18be852ccbec8b.js.map"
}

Есть идеи?

решение:

В веб-пакере необходимо указать префикс носителя:

= image_pack_tag 'media/images/my_company_logo'
...