Skip to content

Commit 9f3c44d

Browse files
committed
fix(rsc): use req.originalUrl for server handler
1 parent 907b9d8 commit 9f3c44d

File tree

1 file changed

+5
-0
lines changed

1 file changed

+5
-0
lines changed

packages/plugin-rsc/src/plugin.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -471,6 +471,10 @@ export default function vitePluginRsc(
471471
`[vite-rsc] failed to resolve server handler '${source}'`,
472472
)
473473
const mod = await environment.runner.import(resolved.id)
474+
// prserve original request url for SSR framework.
475+
// for example, Vite automatically strips `base` from url.
476+
// https://github.com/vitejs/vite/blob/84079a84ad94de4c1ef4f1bdb2ab448ff2c01196/packages/vite/src/node/server/middlewares/base.ts#L18-L20
477+
req.url = req.originalUrl
474478
// ensure catching rejected promise
475479
// https://github.com/mjackson/remix-the-web/blob/b5aa2ae24558f5d926af576482caf6e9b35461dc/packages/node-fetch-server/src/lib/request-listener.ts#L87
476480
await createRequestListener(mod.default)(req, res)
@@ -506,6 +510,7 @@ export default function vitePluginRsc(
506510
return () => {
507511
server.middlewares.use(async (req, res, next) => {
508512
try {
513+
req.url = req.originalUrl
509514
await handler(req, res)
510515
} catch (e) {
511516
next(e)

0 commit comments

Comments
 (0)