perf: fix PageSpeed Insights issues (WebGL errors, bfcache, redirects, a11y)
All checks were successful
Gitea CI / test-build (push) Successful in 11m38s

- Add WebGL support detection in ShaderGradientBackground to prevent console errors
- Add .catch() fallback to ShaderGradientBackground dynamic import
- Remove hardcoded aria-label from consent banner minimize button (fixes label-content-name-mismatch)
- Use rewrite instead of redirect for root locale routing (eliminates one redirect hop)
- Change n8n API cache headers from no-store to no-cache (enables bfcache)
- Add three and @react-three/fiber to optimizePackageImports for better tree-shaking

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
2026-03-04 01:29:32 +01:00
parent 0f7ea8ca4d
commit f62db69289
5 changed files with 27 additions and 11 deletions

View File

@@ -88,11 +88,15 @@ export function middleware(request: NextRequest) {
return addHeaders(request, res);
}
// Redirect bare routes to locale-prefixed ones
// Add locale prefix: rewrite root path (avoids redirect roundtrip), redirect others
const preferred = pickLocaleFromHeader(request.headers.get("accept-language"));
const redirectTarget =
pathname === "/" ? `/${preferred}` : `/${preferred}${pathname}${search || ""}`;
responseUrl.pathname = redirectTarget;
if (pathname === "/") {
responseUrl.pathname = `/${preferred}`;
const res = NextResponse.rewrite(responseUrl);
res.cookies.set("NEXT_LOCALE", preferred, { path: "/" });
return addHeaders(request, res);
}
responseUrl.pathname = `/${preferred}${pathname}${search || ""}`;
const res = NextResponse.redirect(responseUrl);
res.cookies.set("NEXT_LOCALE", preferred, { path: "/" });
return addHeaders(request, res);