From d24e40df996909535985dff51552336d9fa13911 Mon Sep 17 00:00:00 2001 From: Simon Holthausen Date: Mon, 3 Feb 2025 15:51:26 +0100 Subject: [PATCH 1/2] fix: make route resolution imports root-relative if `path.relative` option is `false` It is necessary to adhere to this setting because rewrites that SvelteKit cannot see may otherwise lead to incorrect relative paths. Example: - route resolution request to _app/route.js - rewrite to _app/route/foo.js - SvelteKit only sees the later, returning a relative `import('../immutable/...`) which is wrong, because the actual relative path would be `import('./immutable/...)` --- .changeset/sharp-games-rule.md | 5 +++++ packages/kit/src/runtime/server/page/server_routing.js | 6 +++++- 2 files changed, 10 insertions(+), 1 deletion(-) create mode 100644 .changeset/sharp-games-rule.md diff --git a/.changeset/sharp-games-rule.md b/.changeset/sharp-games-rule.md new file mode 100644 index 000000000000..ee3450b9c646 --- /dev/null +++ b/.changeset/sharp-games-rule.md @@ -0,0 +1,5 @@ +--- +'@sveltejs/kit': patch +--- + +fix: make route resolution imports root-relative if `path.relative` option is `false` diff --git a/packages/kit/src/runtime/server/page/server_routing.js b/packages/kit/src/runtime/server/page/server_routing.js index 1caf4cbbb4b2..8f66fb8eb65d 100644 --- a/packages/kit/src/runtime/server/page/server_routing.js +++ b/packages/kit/src/runtime/server/page/server_routing.js @@ -1,4 +1,4 @@ -import { base, assets } from '__sveltekit/paths'; +import { base, assets, relative } from '__sveltekit/paths'; import { text } from '../../../exports/index.js'; import { s } from '../../../utils/misc.js'; import { exec } from '../../../utils/routing.js'; @@ -47,6 +47,10 @@ function create_client_import(import_path, url) { return `import('${assets}/${import_path}')`; } + if (!relative) { + return `import('${base}/${import_path}')`; + } + // Else we make them relative to the server-side route resolution request // to support IPFS, the internet archive, etc. let path = get_relative_path(url.pathname, `${base}/${import_path}`); From 47ac5b8be9296d334f5cd949f719b2d36fc9b906 Mon Sep 17 00:00:00 2001 From: Simon H <5968653+dummdidumm@users.noreply.github.com> Date: Mon, 3 Feb 2025 15:54:44 +0100 Subject: [PATCH 2/2] Update .changeset/sharp-games-rule.md --- .changeset/sharp-games-rule.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.changeset/sharp-games-rule.md b/.changeset/sharp-games-rule.md index ee3450b9c646..56787afb6155 100644 --- a/.changeset/sharp-games-rule.md +++ b/.changeset/sharp-games-rule.md @@ -2,4 +2,4 @@ '@sveltejs/kit': patch --- -fix: make route resolution imports root-relative if `path.relative` option is `false` +fix: make route resolution imports root-relative if `paths.relative` option is `false`