diff --git a/.changeset/nasty-ladybugs-trade.md b/.changeset/nasty-ladybugs-trade.md new file mode 100644 index 000000000..19ad98844 --- /dev/null +++ b/.changeset/nasty-ladybugs-trade.md @@ -0,0 +1,5 @@ +--- +"@solidjs/start": patch +--- + +Handle base url in api routes diff --git a/packages/start/src/server/handler.ts b/packages/start/src/server/handler.ts index a794f1697..271b4de06 100644 --- a/packages/start/src/server/handler.ts +++ b/packages/start/src/server/handler.ts @@ -32,10 +32,9 @@ export function createBaseHandler( handler: decorateHandler(async (e: H3Event) => { const event = getRequestEvent()!; const url = new URL(event.request.url); - const pathname = url.pathname; + const pathname = stripBaseUrl(url.pathname); - const serverFunctionTest = join(import.meta.env.BASE_URL, SERVER_FN_BASE); - if (pathname.startsWith(serverFunctionTest)) { + if (pathname.startsWith(SERVER_FN_BASE)) { const serverFnResponse = await handleServerFunction(e); if (serverFnResponse instanceof Response) @@ -265,3 +264,8 @@ function produceResponseWithEventHeaders(res: Response) { return ret } + +function stripBaseUrl(path: string) { + if(import.meta.env.BASE_URL === "/" || import.meta.env.BASE_URL === "") return path; + return path.slice(import.meta.env.BASE_URL.length); +}