feat: implement asset fetching and routing for docs in worker and add server hooks

This commit is contained in:
Rotimi Best
2026-05-19 05:45:11 +01:00
parent 4bcff3813a
commit bf55f7ce5b
2 changed files with 46 additions and 1 deletions
+19 -1
View File
@@ -14,8 +14,26 @@ const requestHandler = createRequestHandler(
import.meta.env.MODE
);
const BASENAME = '/docs';
export default {
fetch(request, env, ctx) {
async fetch(request, env, ctx) {
const url = new URL(request.url);
// The app is built with base: '/docs', so HTML references assets at
// /docs/assets/... and /docs/*.webp, but the ASSETS binding only knows
// about the flat build/client/ layout. Re-fetch with the prefix stripped
// so static files resolve before we fall through to SSR.
if (url.pathname.startsWith(`${BASENAME}/`)) {
const strippedUrl = new URL(url);
strippedUrl.pathname = url.pathname.slice(BASENAME.length);
const assetResponse = await env.ASSETS.fetch(new Request(strippedUrl, request));
if (assetResponse.status !== 404) {
return assetResponse;
}
}
return requestHandler(request, {
cloudflare: { env, ctx }
});