Closed
Description
Using webpacker 6.0.0.pre.2 and webpack 5.26.1, rails view cannot find paths for image asset.
Here is the haml line that fails in my view:
= image_pack_tag('flags/fr.svg', class: 'flag rounded-circle me-1')
I'm getting the Webpacker::Manifest::MissingEntryError
exception. The image is located in app/webpack/images/flags/fr.svg
. The directory structure looks like:
app/webpack/
├── images
│ ├── favicon.ico
│ └── flags
│ ├── en.svg
│ ├── fr.svg
│ └── zh.svg
├── packs
│ ├── application.js
│ └── application.scss
├── src/...
└── stylesheets/...
webpacker.yml
contains:
default: &default
source_path: app/webpack
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
resolved_paths: ["app/webpack/images"]
It seems that the problem lies with the manifest generation. The asset path should be flags/fr.svg
relative to app/webpack/images
but the flags/
path prefix seems to be missing. The manifest contains:
{
"application.css": "/packs/css/application.css",
"application.js": "/packs/js/application-725aea22742bad3243cc.js",
"css/application.css.map": "/packs/css/application.css.map",
"entrypoints": {
"application": {
"assets": {
"js": [
"/packs/js/runtime-089dda7adff9a5688a94.js",
"/packs/js/vendors-node_modules_hotwired_turbo-rails_app_javascript_turbo_index_js-node_modules_rails_ac-f25bc2-cef2fc19854103ad4fbc.js",
"/packs/js/application-725aea22742bad3243cc.js"
],
"css": [
"/packs/css/application.css"
]
}
}
},
"js/application-725aea22742bad3243cc.js.map": "/packs/js/application-725aea22742bad3243cc.js.map",
"js/runtime-089dda7adff9a5688a94.js.map": "/packs/js/runtime-089dda7adff9a5688a94.js.map",
"js/vendors-node_modules_hotwired_turbo-rails_app_javascript_turbo_index_js-node_modules_rails_ac-f25bc2-cef2fc19854103ad4fbc.js": "/packs/js/vendors-node_modules_hotwired_turbo-rails_app_javascript_turbo_index_js-node_modules_rails_ac-f25bc2-cef2fc19854103ad4fbc.js",
"js/vendors-node_modules_hotwired_turbo-rails_app_javascript_turbo_index_js-node_modules_rails_ac-f25bc2-cef2fc19854103ad4fbc.js.map": "/packs/js/vendors-node_modules_hotwired_turbo-rails_app_javascript_turbo_index_js-node_modules_rails_ac-f25bc2-cef2fc19854103ad4fbc.js.map",
"js/vendors-node_modules_rails_actioncable_src_index_js-145d9f25b4424ce0cea9.chunk.js": "/packs/js/vendors-node_modules_rails_actioncable_src_index_js-145d9f25b4424ce0cea9.chunk.js",
"js/vendors-node_modules_rails_actioncable_src_index_js-145d9f25b4424ce0cea9.chunk.js.map": "/packs/js/vendors-node_modules_rails_actioncable_src_index_js-145d9f25b4424ce0cea9.chunk.js.map",
"media/images/en.svg": "/packs/media/images/601fdab623a59f2a2c9a.svg",
"media/images/favicon.ico": "/packs/media/images/5c5c455f9d579ead5efe.ico",
"media/images/fr.svg": "/packs/media/images/c88df3297cffe49852ae.svg",
"media/images/zh.svg": "/packs/media/images/f5a6f048eb8367343bd4.svg",
"runtime.js": "/packs/js/runtime-089dda7adff9a5688a94.js"
}
Perhaps this is a misconfiguration or a bug of webpack-assets-manifest in
webpacker/package/environments/base.js
Lines 57 to 63 in 45cc2a2