Re-reviewed at the current head (0aef410f) — thanks for cleaning up the formatting/lint in the last two commits; prettier and eslint both pass on the changed files now. 👍
One substantive blocker remains: it still 404s the logo + favicon in production.
The URLs resolve to the site root (/Lotus.png, /lotus.png, …), but the build sets copyPublicDir: false, so Vite never emits publicDir into dist/ — the logos reach dist/ only via vite-plugin-static-copy,
which lands them at dist/public/res/. I verified with an actual build of this branch's config: dist/Lotus.png (and the three favicons) are absent → 404, while dist/public/res/Lotus.png exists. Dev works
only because publicDir: './public/res' serves that folder at the root in the dev server — that remap doesn't exist in the built output.
Fix: point the paths at /public/res/… and revert the vite.config.js change (leave publicDir: false). Resolves in both dev and prod with no config change:
(Keeping publicDir: './public/res' would also require copyPublicDir: true, which double-copies all of public/res — android/apple/svg, ~560K — into the dist root when only the 4 logos are used there. Not
recommended.)
Heads-up: lotus already shipped this exact fix in f12e05c5 using /public/res/…, so closing/rebasing may be simpler than reworking.
Re-reviewed at the current head (0aef410f) — thanks for cleaning up the formatting/lint in the last two commits; prettier and eslint both pass on the changed files now. 👍
One substantive blocker remains: it still 404s the logo + favicon in production.
The URLs resolve to the site root (/Lotus.png, /lotus.png, …), but the build sets copyPublicDir: false, so Vite never emits publicDir into dist/ — the logos reach dist/ only via vite-plugin-static-copy,
which lands them at dist/public/res/. I verified with an actual build of this branch's config: dist/Lotus.png (and the three favicons) are absent → 404, while dist/public/res/Lotus.png exists. Dev works
only because publicDir: './public/res' serves that folder at the root in the dev server — that remap doesn't exist in the built output.
Fix: point the paths at /public/res/… and revert the vite.config.js change (leave publicDir: false). Resolves in both dev and prod with no config change:
const LotusLogo = withOriginBaseUrl(getOriginBaseUrl(), '/public/res/Lotus.png');
(Keeping publicDir: './public/res' would also require copyPublicDir: true, which double-copies all of public/res — android/apple/svg, ~560K — into the dist root when only the 4 logos are used there. Not
recommended.)
Heads-up: lotus already shipped this exact fix in f12e05c5 using /public/res/…, so closing/rebasing may be simpler than reworking.
Closing this in favor of the version now on lotus (f2c356f2) — I took your approach here (the withOriginBaseUrl(getOriginBaseUrl(), …) helper) and landed it there, co-authored to you. 🙌
The only change from this PR: the paths point at /public/res/… instead of the site root, and vite.config.js stays publicDir: false. Reason — the prod build sets copyPublicDir: false, so a root /Lotus.png
404s in production (the logos are emitted to dist/public/res/ by vite-plugin-static-copy); verified with a build. Same helper, same idea, just the prod-safe path.
Thanks for chasing the root cause here — the public/ import diagnosis was spot on. Closing as merged-in-spirit.
Closing this in favor of the version now on lotus (f2c356f2) — I took your approach here (the withOriginBaseUrl(getOriginBaseUrl(), …) helper) and landed it there, co-authored to you. 🙌
The only change from this PR: the paths point at /public/res/… instead of the site root, and vite.config.js stays publicDir: false. Reason — the prod build sets copyPublicDir: false, so a root /Lotus.png
404s in production (the logos are emitted to dist/public/res/ by vite-plugin-static-copy); verified with a build. Same helper, same idea, just the prod-safe path.
Thanks for chasing the root cause here — the public/ import diagnosis was spot on. Closing as merged-in-spirit.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Test this with your prod build to make sure it didnt break anything there
Re-reviewed at the current head (
0aef410f) — thanks for cleaning up the formatting/lint in the last two commits; prettier and eslint both pass on the changed files now. 👍One substantive blocker remains: it still 404s the logo + favicon in production.
The URLs resolve to the site root (/Lotus.png, /lotus.png, …), but the build sets copyPublicDir: false, so Vite never emits publicDir into dist/ — the logos reach dist/ only via vite-plugin-static-copy,
which lands them at dist/public/res/. I verified with an actual build of this branch's config: dist/Lotus.png (and the three favicons) are absent → 404, while dist/public/res/Lotus.png exists. Dev works
only because publicDir: './public/res' serves that folder at the root in the dev server — that remap doesn't exist in the built output.
Fix: point the paths at /public/res/… and revert the vite.config.js change (leave publicDir: false). Resolves in both dev and prod with no config change:
const LotusLogo = withOriginBaseUrl(getOriginBaseUrl(), '/public/res/Lotus.png');
(Keeping publicDir: './public/res' would also require copyPublicDir: true, which double-copies all of public/res — android/apple/svg, ~560K — into the dist root when only the 4 logos are used there. Not
recommended.)
Heads-up: lotus already shipped this exact fix in
f12e05c5using /public/res/…, so closing/rebasing may be simpler than reworking.Closing this in favor of the version now on lotus (
f2c356f2) — I took your approach here (the withOriginBaseUrl(getOriginBaseUrl(), …) helper) and landed it there, co-authored to you. 🙌The only change from this PR: the paths point at /public/res/… instead of the site root, and vite.config.js stays publicDir: false. Reason — the prod build sets copyPublicDir: false, so a root /Lotus.png
404s in production (the logos are emitted to dist/public/res/ by vite-plugin-static-copy); verified with a build. Same helper, same idea, just the prod-safe path.
Thanks for chasing the root cause here — the public/ import diagnosis was spot on. Closing as merged-in-spirit.
Pull request closed