Rails 6
Webpacker
在我的app/javascript/packages/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"
}
有什么想法吗?
解决方案:
使用webpacker时,您需要包含媒体前缀:
= image_pack_tag 'media/images/my_company_logo'