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'