Next.js 14+ defaults the image optimizer to Content-Disposition: attachment
(SVG XSS protection). That made GIF/PNG banner ads download as files
instead of rendering inline — manifesting as "missing banners" on the
live site (LiveU 728x90, Telycam 300x250, etc.).
Setting contentDispositionType: 'inline' restores the expected render
behavior. The strict CSP on optimized images is still in place; we just
serve inline now.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
next.config redirects fire before middleware/page.tsx, so /login still
307'd to /client-login (which bounces to distribute). Removing the
config rule lets src/app/login/page.tsx serve a real BB-direct sign-in
form for admin access.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Previous state: '/' was 307-redirected to '/home-page', and the
home-page route declared canonical='/home-page'. Net effect on
SEO: Google indexed '/home-page' as the canonical homepage and
treated '/' as a transient redirect (no link equity passed).
Changes:
- next.config.mjs: replace the source:'/' destination:'/home-page'
temporary redirect with source:'/home-page' destination:'/'
permanent (301). Any existing crawler entry for /home-page now
consolidates onto '/'.
- src/app/page.tsx (new): re-exports default + metadata from
./home-page/page so '/' serves the homepage directly. No file
moves required, no relative-import breakage in the home-page
component subtree.
- src/app/home-page/page.tsx: canonical and openGraph.url
'/home-page' → '/'. The page still builds at /home-page but
the 301 above will redirect any hit before render.
- src/app/sitemap.ts: drop the duplicate /home-page entry — Google
shouldn't be told about a URL that just redirects.