feat(front): add config route to expose site configuration variables

This commit is contained in:
keven1024
2025-05-14 17:52:46 +08:00
parent 5c0a9855a8
commit 597a548111
3 changed files with 35 additions and 0 deletions

View File

@@ -0,0 +1,26 @@
type UseSeoProps = {
head?: Record<string, any>
seo?: Record<string, any>
}
const useSeo = async (props: UseSeoProps = {}) => {
const { head, seo } = props || {}
const { data } = await useFetch<any>('/config')
const seoMeta = computed(() => data.value?.data)
const { title } = head || {}
useHead({
...head,
title: title ? `${title} - ${seoMeta?.value?.site_title}` : seoMeta?.value?.site_title,
})
useSeoMeta({
...seo,
title: seoMeta?.value?.site_title,
description: seoMeta?.value?.site_desc,
ogTitle: seoMeta?.value?.site_title,
ogDescription: seoMeta?.value?.site_desc,
// ogImage: seoMeta?.value?.site_url,
// twitterCard: 'summary_large_image',
})
return
}
export default useSeo

View File

@@ -1,5 +1,6 @@
<script lang="ts" setup>
import { Toaster } from 'vue-sonner'
await useSeo()
</script>
<template>
<div class="h-screen w-screen ">

View File

@@ -0,0 +1,8 @@
export default defineEventHandler(() => {
const { SITE_TITLE, SITE_DESC, SITE_URL } = process.env || {}
return {
site_title: SITE_TITLE,
site_desc: SITE_DESC,
site_url: SITE_URL,
}
})