Skip to content

Commit f81fb44

Browse files
author
johan sh
committed
fix: allow prerendering with a basename set to work alongside ssr:false
the normalized (including basename) was compared with the prerender-entry, which does not have a basename
1 parent 55a876e commit f81fb44

File tree

2 files changed

+14
-2
lines changed

2 files changed

+14
-2
lines changed

contributors.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -401,3 +401,4 @@
401401
- zeromask1337
402402
- zheng-chuang
403403
- zxTomw
404+
- skrhlm

packages/react-router/lib/server-runtime/server.ts

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -166,6 +166,16 @@ export const createRequestHandler: CreateRequestHandlerFunction = (
166166
normalizedPath = normalizedPath.slice(0, -1);
167167
}
168168

169+
let pathForPrerenderCheck = stripBasename(
170+
normalizedPath,
171+
normalizedBasename
172+
);
173+
174+
// handle root path
175+
if (pathForPrerenderCheck === "/") {
176+
pathForPrerenderCheck = "";
177+
}
178+
169179
let isSpaMode =
170180
getBuildTimeHeader(request, "X-React-Router-SPA-Mode") === "yes";
171181

@@ -178,8 +188,9 @@ export const createRequestHandler: CreateRequestHandlerFunction = (
178188
// ssr:false and no prerender config indicates "SPA Mode"
179189
isSpaMode = true;
180190
} else if (
181-
!_build.prerender.includes(normalizedPath) &&
182-
!_build.prerender.includes(normalizedPath + "/")
191+
pathForPrerenderCheck !== null &&
192+
!_build.prerender.includes(pathForPrerenderCheck) &&
193+
!_build.prerender.includes(pathForPrerenderCheck + "/")
183194
) {
184195
if (url.pathname.endsWith(".data")) {
185196
// 404 on non-pre-rendered `.data` requests

0 commit comments

Comments
 (0)