diff --git a/astro.config.mjs b/astro.config.mjs index 7647390..16d0e09 100644 --- a/astro.config.mjs +++ b/astro.config.mjs @@ -1,6 +1,6 @@ import { defineConfig } from "astro/config"; - import cloudflare from "@astrojs/cloudflare"; +import { cacheCloudflare } from "@astrojs/cloudflare/cache"; import tailwindcss from "@tailwindcss/vite"; import { MAX_IMAGE_BYTES } from "./src/config.ts"; @@ -10,6 +10,7 @@ export default defineConfig({ site: "https://pixl.pics/", output: "server", adapter: cloudflare(), + cache: { provider: cacheCloudflare() }, security: { actionBodySizeLimit: MAX_IMAGE_BYTES + 100_000, @@ -19,6 +20,5 @@ export default defineConfig({ plugins: [tailwindcss()], server: { allowedHosts: ["mbp.puma-rainbow.ts.net"] }, }, - integrations: [react()], }); diff --git a/src/pages/images/[cid].ts b/src/pages/images/[cid].ts index 321cc34..1f7c00a 100644 --- a/src/pages/images/[cid].ts +++ b/src/pages/images/[cid].ts @@ -26,6 +26,9 @@ export const GET: APIRoute = async ({ url, params, callAction }) => { if (error) return new Response(error.message, { status: error.status }); return new Response(data.bytes, { - headers: { "Content-Type": data.mimeType }, + headers: { + "Content-Type": data.mimeType, + "Cloudflare-CDN-Cache-Control": "public, max-age=31536000, immutable", + }, }); };