diff --git a/web/next.config.mjs b/web/next.config.mjs index a0227d65..9ae1cfac 100644 --- a/web/next.config.mjs +++ b/web/next.config.mjs @@ -13,6 +13,18 @@ const withNextIntl = createNextIntlPlugin('./i18n/request.ts') /** @type {import('next').NextConfig} */ const nextConfig = { output: "export", + // GitHub Pages serves a directory URL `/foo/` by looking for + // `out/foo/index.html`. Next.js's default static export with + // `trailingSlash: false` emits `out/foo.html` instead, which Pages + // only serves for the bare URL `/foo` (no trailing slash). The + // i18n root redirect points users at `//` (with + // slash) — so every visitor would land on a 404. Enabling + // trailingSlash makes Next.js emit `out//index.html` for + // every page, including `out/en/index.html` and `out/es/index.html` + // so the locale roots load correctly. Internal `` URLs from + // next-intl already include the trailing slash, so this aligns + // export, runtime navigation and Pages serving. + trailingSlash: true, eslint: { ignoreDuringBuilds: true, },