From e5b469491474b298aac6b3421d65e105098e79d8 Mon Sep 17 00:00:00 2001 From: Hiroshi Ogawa Date: Sat, 19 Jul 2025 10:57:46 +0900 Subject: [PATCH 1/2] fix(rsc): ensure trailing slash of `BASE_URL` --- packages/plugin-rsc/src/browser.ts | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/packages/plugin-rsc/src/browser.ts b/packages/plugin-rsc/src/browser.ts index e5a52f945..19b64ea45 100644 --- a/packages/plugin-rsc/src/browser.ts +++ b/packages/plugin-rsc/src/browser.ts @@ -10,7 +10,9 @@ function initialize(): void { load: async (id) => { if (!import.meta.env.__vite_rsc_build__) { // @ts-ignore - return __vite_rsc_raw_import__(import.meta.env.BASE_URL + id.slice(1)) + return __vite_rsc_raw_import__( + withTrailingSlash(import.meta.env.BASE_URL) + id.slice(1), + ) } else { const import_ = clientReferences.default[id] if (!import_) { @@ -21,3 +23,11 @@ function initialize(): void { }, }) } + +// https://github.com/vitejs/vite/blob/27a192fc95036dbdb6e615a4201b858eb64aa075/packages/vite/src/shared/utils.ts#L48-L53 +function withTrailingSlash(path: string): string { + if (path[path.length - 1] !== '/') { + return `${path}/` + } + return path +} From ed59bbeea74a198ea2a3e550106c999e0bd1ad9e Mon Sep 17 00:00:00 2001 From: Hiroshi Ogawa Date: Sat, 19 Jul 2025 11:30:25 +0900 Subject: [PATCH 2/2] chore: comment --- packages/plugin-rsc/src/browser.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/plugin-rsc/src/browser.ts b/packages/plugin-rsc/src/browser.ts index 19b64ea45..0892a8879 100644 --- a/packages/plugin-rsc/src/browser.ts +++ b/packages/plugin-rsc/src/browser.ts @@ -24,6 +24,7 @@ function initialize(): void { }) } +// Vite normalizes `config.base` to have trailing slash, but not for `import.meta.env.BASE_URL`. // https://github.com/vitejs/vite/blob/27a192fc95036dbdb6e615a4201b858eb64aa075/packages/vite/src/shared/utils.ts#L48-L53 function withTrailingSlash(path: string): string { if (path[path.length - 1] !== '/') {