diff --git a/next.config.ts b/next.config.ts index ceb8aa2..f1d322b 100644 --- a/next.config.ts +++ b/next.config.ts @@ -3,6 +3,25 @@ import type { NextConfig } from "next"; const nextConfig: NextConfig = { allowedDevOrigins: ["192.168.100.6"], output: "standalone", + // Files in public/ are served with `Cache-Control: public, max-age=0` by + // default, because Next.js can't know whether they change. kd-tile.png is + // hot-linked by an external HTML email signature, so its URL is a fixed + // contract and its bytes never change — pin it to a long-lived immutable + // cache so mail clients and their image proxies stop re-fetching it. + // Headers are matched before the filesystem, so this applies to public/. + async headers() { + return [ + { + source: "/kd-tile.png", + headers: [ + { + key: "Cache-Control", + value: "public, max-age=31536000, immutable", + }, + ], + }, + ]; + }, }; export default nextConfig; diff --git a/public/kd-tile-big.png b/public/kd-tile-big.png new file mode 100644 index 0000000..bd2579b Binary files /dev/null and b/public/kd-tile-big.png differ diff --git a/public/kd-tile.png b/public/kd-tile.png index bd2579b..8c2d523 100644 Binary files a/public/kd-tile.png and b/public/kd-tile.png differ