diff --git a/packages/app/app/pages/~/[owner]/[repo].vue b/packages/app/app/pages/~/[owner]/[repo].vue index 8e9b7a51..f5a4b1eb 100644 --- a/packages/app/app/pages/~/[owner]/[repo].vue +++ b/packages/app/app/pages/~/[owner]/[repo].vue @@ -19,10 +19,13 @@ if (!data.value) { const repository = data.value; +const ogImageUrl = `/__og-image__/image/~/${repository.owner.login}/${repository.name}/og.png`; + useHead({ link: [ { rel: "icon", href: "/favicon.png" }, { rel: "icon", type: "image/svg+xml", href: "/favicon.svg" }, + { rel: "prefetch", as: "image", href: ogImageUrl }, ], }); useSeoMeta({ diff --git a/packages/app/nuxt.config.ts b/packages/app/nuxt.config.ts index 85882f51..0cd63a9f 100644 --- a/packages/app/nuxt.config.ts +++ b/packages/app/nuxt.config.ts @@ -71,6 +71,14 @@ export default defineNuxtConfig({ "public, max-age=30, s-maxage=120, stale-while-revalidate=300", }, }, + "/__og-image__/**": { + headers: { + "cache-control": + "public, max-age=604800, s-maxage=604800, stale-while-revalidate=86400", + "cdn-cache-control": + "public, max-age=604800, stale-while-revalidate=86400", + }, + }, }, runtimeConfig: {