diff --git a/front/composables/useSeo.ts b/front/composables/useSeo.ts index ffe52f9..6a00e16 100644 --- a/front/composables/useSeo.ts +++ b/front/composables/useSeo.ts @@ -16,6 +16,7 @@ const useSeo = async (props: UseSeoProps = {}) => { site_bg_url: string }>() if (import.meta.server) { + const nuxtApp = useNuxtApp() await fetch(`${getApiBaseUrl()}/config`) .then((res) => res.json()) .then(({ data }) => { @@ -24,33 +25,35 @@ const useSeo = async (props: UseSeoProps = {}) => { const { title } = head || {} const siteTitle = computed(() => renderI18n(seoMeta?.value?.site_title || {}, 'en', locale)) const siteDesc = computed(() => renderI18n(seoMeta?.value?.site_desc || {}, 'en', locale)) - useHead({ - link: [ - { rel: 'icon', href: seoMeta.value?.site_icon || '/logo.png', sizes: 'any' }, - // { rel: 'icon', href: '/favicon.svg', sizes: 'any', type: 'image/svg+xml' }, - { rel: 'apple-touch-icon', sizes: '180x180', href: seoMeta.value?.site_icon || '/logo.png' }, - ], - meta: [ - // used on some mobile browsers - { name: 'theme-color', content: '#395276' }, - ], - ...head, - title: title ? `${title} - ${siteTitle.value}` : siteTitle.value, - }) - useSeoMeta({ - ...seo, - title: siteTitle.value, - description: siteDesc.value, - ogTitle: siteTitle.value, - ogDescription: siteDesc.value, - ogImage: { - url: `${seoMeta?.value?.site_url}${seoMeta?.value?.site_icon || '/logo.png'}`, - width: 1024, - height: 1024, - alt: 'logo', - type: 'image/png', - }, - twitterCard: 'summary', + await nuxtApp.runWithContext(() => { + useHead({ + link: [ + { rel: 'icon', href: seoMeta.value?.site_icon || '/logo.png', sizes: 'any' }, + // { rel: 'icon', href: '/favicon.svg', sizes: 'any', type: 'image/svg+xml' }, + { rel: 'apple-touch-icon', sizes: '180x180', href: seoMeta.value?.site_icon || '/logo.png' }, + ], + meta: [ + // used on some mobile browsers + { name: 'theme-color', content: '#395276' }, + ], + ...head, + title: title ? `${title} - ${siteTitle.value}` : siteTitle.value, + }) + useSeoMeta({ + ...seo, + title: siteTitle.value, + description: siteDesc.value, + ogTitle: siteTitle.value, + ogDescription: siteDesc.value, + ogImage: { + url: `${seoMeta?.value?.site_url}${seoMeta?.value?.site_icon || '/logo.png'}`, + width: 1024, + height: 1024, + alt: 'logo', + type: 'image/png', + }, + twitterCard: 'summary', + }) }) } return