From bc9786ce4953275711994a7662707244299b694a Mon Sep 17 00:00:00 2001 From: Jose Luis Date: Fri, 20 Mar 2026 16:04:14 +0100 Subject: [PATCH] fix: resolve asset paths relative to document base URI Assets were 404ing because relative paths resolved against the wrong base when the page was served from a subdirectory. Co-Authored-By: Claude Opus 4.6 --- js/world/sprites.js | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/js/world/sprites.js b/js/world/sprites.js index f7ff5f7..25cfb48 100644 --- a/js/world/sprites.js +++ b/js/world/sprites.js @@ -37,11 +37,14 @@ export async function preloadAssets() { const loads = []; + // Resolve asset base path relative to the HTML document + const base = new URL('.', document.baseURI).href; + // Map backgrounds - loads.push(loadImage('map:lab', 'assets/map/lab.png')); - loads.push(loadImage('map:pallet-town', 'assets/map/pallet-town.png')); - loads.push(loadImage('map:house-a-1f', 'assets/map/house-a-1f.png')); - loads.push(loadImage('map:route-1', 'assets/map/route-1.png')); + loads.push(loadImage('map:lab', `${base}assets/map/lab.png`)); + loads.push(loadImage('map:pallet-town', `${base}assets/map/pallet-town.png`)); + loads.push(loadImage('map:house-a-1f', `${base}assets/map/house-a-1f.png`)); + loads.push(loadImage('map:route-1', `${base}assets/map/route-1.png`)); // Character sprites (32x32 each) const dirs = ['front', 'back', 'left', 'right']; @@ -49,14 +52,14 @@ export async function preloadAssets() { for (const dir of dirs) { for (const frame of frames) { const key = `char:${dir}-${frame}`; - loads.push(loadImage(key, `assets/character/${dir}-${frame}.png`)); + loads.push(loadImage(key, `${base}assets/character/${dir}-${frame}.png`)); } } // NPC sprites (16x16 each) const npcDirs = ['down', 'up', 'left', 'right']; for (const d of npcDirs) { - loads.push(loadImage(`npc:a-${d}`, `assets/npcs/a-${d}.png`)); + loads.push(loadImage(`npc:a-${d}`, `${base}assets/npcs/a-${d}.png`)); } await Promise.all(loads);