From 3d7a44567b8973dff2daa100999a0755140bfa5d Mon Sep 17 00:00:00 2001 From: Florian Hammerschmidt Date: Sat, 26 Sep 2026 16:44:39 +0200 Subject: [PATCH] fix: serve data for canonical documentation URLs Copy prerendered route data to the trailing-slash paths requested by React Router so search results can navigate without decoding the HTML fallback. --- apps/docs/react-router.config.mjs | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/apps/docs/react-router.config.mjs b/apps/docs/react-router.config.mjs index 1cbca953b..88725056f 100644 --- a/apps/docs/react-router.config.mjs +++ b/apps/docs/react-router.config.mjs @@ -19,6 +19,17 @@ export default { }, }, buildEnd: async () => { + // Cloudflare serves prerendered pages at trailing-slash URLs. React Router + // requests /page/_.data for those URLs, while prerendering emits /page.data. + for (const dataFile of fs.globSync("**/*.data", { + cwd: "./build/client", + })) { + const routeDir = `./build/client/${dataFile.slice(0, -".data".length)}`; + if (fs.existsSync(`${routeDir}/index.html`)) { + fs.copyFileSync(`./build/client/${dataFile}`, `${routeDir}/_.data`); + } + } + fs.rmSync("./out", { recursive: true, force: true }); fs.cpSync("./build/client", "./out", { recursive: true }); },