diff --git a/.changeset/purple-starfishes-sip.md b/.changeset/purple-starfishes-sip.md new file mode 100644 index 000000000000..1b10ffc07011 --- /dev/null +++ b/.changeset/purple-starfishes-sip.md @@ -0,0 +1,5 @@ +--- +'@sveltejs/adapter-vercel': patch +--- + +fix: add trailing slash -> no trailing slash redirect for prerendered pages diff --git a/packages/adapter-vercel/index.js b/packages/adapter-vercel/index.js index 529225d7cf28..47d384ee3feb 100644 --- a/packages/adapter-vercel/index.js +++ b/packages/adapter-vercel/index.js @@ -193,16 +193,24 @@ function static_vercel_config(builder) { } for (const [path, page] of builder.prerendered.pages) { - if (path.endsWith('/') && path !== '/') { + let overrides_path = path.slice(1); + + if (path !== '/') { + /** @type {string | undefined} */ + let counterpart_route = path + '/'; + + if (path.endsWith('/')) { + counterpart_route = path.slice(0, -1); + overrides_path = path.slice(1, -1); + } + prerendered_redirects.push( - { src: path, dest: path.slice(0, -1) }, - { src: path.slice(0, -1), status: 308, headers: { Location: path } } + { src: path, dest: counterpart_route }, + { src: counterpart_route, status: 308, headers: { Location: path } } ); - - overrides[page.file] = { path: path.slice(1, -1) }; - } else { - overrides[page.file] = { path: path.slice(1) }; } + + overrides[page.file] = { path: overrides_path }; } return {