Every page here is personalized (session, coin balance, owned games) — no intermediate proxy should ever cache one. Traced a report of a stale UI (missing header content that had already shipped) to caching somewhere between the app and the client — nginx isn't even on this VM, the user's reverse proxy (Nginx Proxy Manager) lives on a separate one I can't inspect. Rather than debug an opaque hop I don't control, close it from this side: explicit no-store on every HTML/API response except /_next/static, which keeps its normal long-lived immutable caching since those filenames are content-hashed by the build. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QcXH24ky6zjk2UyK5oZUPH
25 lines
876 B
TypeScript
25 lines
876 B
TypeScript
import type { NextConfig } from "next";
|
|
|
|
const nextConfig: NextConfig = {
|
|
// Not using output: "standalone" — file-tracing only copies argon2's
|
|
// native .node binaries, not its JS loader, causing a segfault in
|
|
// production. Deploying with the full node_modules via `next start` is
|
|
// simple enough for a single-VM deployment.
|
|
|
|
async headers() {
|
|
return [
|
|
{
|
|
// Every page is personalized (session, wallet balance, owned
|
|
// games) — an intermediate proxy (nginx, a CDN) has no business
|
|
// caching any of it. Static assets under /_next/static are
|
|
// content-hashed by the build and are explicitly excluded here so
|
|
// they keep their own long-lived caching.
|
|
source: "/((?!_next/static).*)",
|
|
headers: [{ key: "Cache-Control", value: "no-store" }],
|
|
},
|
|
];
|
|
},
|
|
};
|
|
|
|
export default nextConfig;
|