diff --git a/website/components/Image.tsx b/website/components/Image.tsx index bfa4a58d0..4ed781eff 100644 --- a/website/components/Image.tsx +++ b/website/components/Image.tsx @@ -250,9 +250,25 @@ export const getEarlyHintFromSrcProps = (srcProps: { return earlyHintParts.join("; "); }; +const isSvg = (src: string) => src?.toLowerCase().endsWith(".svg"); + const Image = forwardRef((props, ref) => { const { preload, loading = "lazy" } = props; + // SVGs are vector graphics and don't need raster optimization + if (isSvg(props.src)) { + return ( + + ); + } + const shouldSetEarlyHint = !!props.setEarlyHint && preload; const srcSet = props.srcSet ?? getSrcSet( diff --git a/website/handlers/fresh.ts b/website/handlers/fresh.ts index 7e61896a8..9b194b7e1 100644 --- a/website/handlers/fresh.ts +++ b/website/handlers/fresh.ts @@ -232,6 +232,14 @@ export default function Fresh( } }, ); + // Set matched page block name for observability headers + if (isFreshCtx(ctx) && page?.metadata?.component) { + // deno-lint-ignore no-explicit-any + (ctx.state as any).matchedPageBlock = page.metadata.component + .replace(/^site\//, '') + .replace(/\.tsx$/, ''); + } + if (asJson !== null) { didFinish = true; return Response.json(page, { headers: allowCorsFor(req) });