mirror of
https://github.com/ctwj/urldb.git
synced 2025-11-25 19:37:33 +08:00
update: seo
This commit is contained in:
67
web/composables/useGlobalSeo.ts
Normal file
67
web/composables/useGlobalSeo.ts
Normal file
@@ -0,0 +1,67 @@
|
||||
import { useSeo } from './useSeo'
|
||||
|
||||
export const useGlobalSeo = () => {
|
||||
const { systemConfig, fetchSystemConfig, setPageSeo, setServerSeo } = useSeo()
|
||||
|
||||
// 初始化系统配置
|
||||
const initSystemConfig = async () => {
|
||||
if (!systemConfig.value) {
|
||||
await fetchSystemConfig()
|
||||
}
|
||||
}
|
||||
|
||||
// 为首页设置SEO
|
||||
const setHomeSeo = (customMeta?: Record<string, string>) => {
|
||||
setPageSeo('首页', {
|
||||
description: systemConfig.value?.site_description || '老九网盘资源数据库 - 专业的网盘资源管理系统',
|
||||
keywords: systemConfig.value?.keywords || '网盘资源,资源管理,数据库,文件分享',
|
||||
...customMeta
|
||||
})
|
||||
}
|
||||
|
||||
// 为登录页设置SEO
|
||||
const setLoginSeo = (customMeta?: Record<string, string>) => {
|
||||
setPageSeo('用户登录', {
|
||||
description: systemConfig.value?.site_description ? `${systemConfig.value.site_description} - 用户登录页面` : '老九网盘资源数据库登录页面',
|
||||
keywords: `${systemConfig.value?.keywords || '网盘资源,登录'},用户登录,账号登录`,
|
||||
...customMeta
|
||||
})
|
||||
}
|
||||
|
||||
// 为注册页设置SEO
|
||||
const setRegisterSeo = (customMeta?: Record<string, string>) => {
|
||||
setPageSeo('用户注册', {
|
||||
description: systemConfig.value?.site_description ? `${systemConfig.value.site_description} - 用户注册页面` : '老九网盘资源数据库注册页面',
|
||||
keywords: `${systemConfig.value?.keywords || '网盘资源,注册'},用户注册,账号注册,免费注册`,
|
||||
...customMeta
|
||||
})
|
||||
}
|
||||
|
||||
// 为热门剧页面设置SEO
|
||||
const setHotDramasSeo = (customMeta?: Record<string, string>) => {
|
||||
setPageSeo('热播剧榜单', {
|
||||
description: systemConfig.value?.site_description ? `${systemConfig.value.site_description} - 实时获取豆瓣热门电影和电视剧榜单` : '实时获取豆瓣热门电影和电视剧榜单,包括热门电影、热门电视剧、热门综艺和豆瓣Top250等分类',
|
||||
keywords: `${systemConfig.value?.keywords || '网盘资源'},热播剧,热门电影,热门电视剧,豆瓣榜单,Top250,影视推荐,电影榜单`,
|
||||
...customMeta
|
||||
})
|
||||
}
|
||||
|
||||
// 为API文档页面设置SEO
|
||||
const setApiDocsSeo = (customMeta?: Record<string, string>) => {
|
||||
setPageSeo('API文档', {
|
||||
description: systemConfig.value?.site_description ? `${systemConfig.value.site_description} - 公开API接口文档` : '老九网盘资源数据库的公开API接口文档,支持资源添加、搜索和热门剧获取等功能',
|
||||
keywords: `${systemConfig.value?.keywords || '网盘资源'},API,接口文档,资源搜索,批量添加,API接口,开发者`,
|
||||
...customMeta
|
||||
})
|
||||
}
|
||||
|
||||
return {
|
||||
initSystemConfig,
|
||||
systemConfig,
|
||||
setHomeSeo,
|
||||
setLoginSeo,
|
||||
setRegisterSeo,
|
||||
setHotDramasSeo,
|
||||
setApiDocsSeo
|
||||
}
|
||||
}
|
||||
@@ -459,41 +459,12 @@ definePageMeta({
|
||||
layout: 'default'
|
||||
})
|
||||
|
||||
// 页面元数据 - 使用Nuxt3 SEO最佳实践
|
||||
useSeoMeta({
|
||||
title: 'API文档 - 老九网盘资源数据库',
|
||||
description: '老九网盘资源数据库的公开API接口文档,支持资源添加、搜索和热门剧获取等功能',
|
||||
keywords: 'API,接口文档,网盘资源管理,资源搜索,批量添加',
|
||||
ogTitle: 'API文档 - 老九网盘资源数据库',
|
||||
ogDescription: '老九网盘资源数据库的公开API接口文档,支持资源添加、搜索和热门剧获取等功能',
|
||||
ogType: 'website',
|
||||
ogImage: '/assets/images/logo.webp',
|
||||
twitterCard: 'summary_large_image',
|
||||
robots: 'index, follow'
|
||||
})
|
||||
// 设置页面SEO
|
||||
const { initSystemConfig, setApiDocsSeo } = useGlobalSeo()
|
||||
|
||||
useHead({
|
||||
htmlAttrs: {
|
||||
lang: 'zh-CN'
|
||||
},
|
||||
link: [
|
||||
{
|
||||
rel: 'canonical',
|
||||
href: 'https://yourdomain.com/api-docs'
|
||||
}
|
||||
],
|
||||
script: [
|
||||
{
|
||||
type: 'application/ld+json',
|
||||
innerHTML: JSON.stringify({
|
||||
"@context": "https://schema.org",
|
||||
"@type": "WebPage",
|
||||
"name": "API文档 - 老九网盘资源数据库",
|
||||
"description": "老九网盘资源数据库的公开API接口文档,支持资源添加、搜索和热门剧获取等功能",
|
||||
"url": "https://yourdomain.com/api-docs"
|
||||
})
|
||||
}
|
||||
]
|
||||
onBeforeMount(async () => {
|
||||
await initSystemConfig()
|
||||
setApiDocsSeo()
|
||||
})
|
||||
</script>
|
||||
|
||||
|
||||
@@ -166,40 +166,12 @@ definePageMeta({
|
||||
layout: 'default'
|
||||
})
|
||||
|
||||
// 设置页面SEO元数据 - 使用Nuxt3 SEO最佳实践
|
||||
useSeoMeta({
|
||||
title: '热播剧榜单 - 老九网盘资源数据库',
|
||||
description: '实时获取豆瓣热门电影和电视剧榜单,包括热门电影、热门电视剧、热门综艺和豆瓣Top250等分类',
|
||||
keywords: '热播剧,热门电影,热门电视剧,豆瓣榜单,Top250,影视推荐',
|
||||
ogTitle: '热播剧榜单 - 老九网盘资源数据库',
|
||||
ogDescription: '实时获取豆瓣热门电影和电视剧榜单',
|
||||
ogType: 'website',
|
||||
ogImage: '/assets/images/logo.webp',
|
||||
twitterCard: 'summary_large_image',
|
||||
robots: 'index, follow'
|
||||
})
|
||||
// 设置页面SEO
|
||||
const { initSystemConfig, setHotDramasSeo } = useGlobalSeo()
|
||||
|
||||
useHead({
|
||||
htmlAttrs: {
|
||||
lang: 'zh-CN'
|
||||
},
|
||||
link: [
|
||||
{
|
||||
rel: 'canonical',
|
||||
href: 'https://yourdomain.com/hot-dramas'
|
||||
}
|
||||
],
|
||||
script: [
|
||||
{
|
||||
type: 'application/ld+json',
|
||||
innerHTML: JSON.stringify({
|
||||
"@context": "https://schema.org",
|
||||
"@type": "WebPage",
|
||||
"name": "热播剧榜单 - 老九网盘资源数据库",
|
||||
"description": "实时获取豆瓣热门电影和电视剧榜单,包括热门电影、热门电视剧、热门综艺和豆瓣Top250等分类"
|
||||
})
|
||||
}
|
||||
]
|
||||
onBeforeMount(async () => {
|
||||
await initSystemConfig()
|
||||
setHotDramasSeo()
|
||||
})
|
||||
|
||||
const hotDramaApi = useHotDramaApi()
|
||||
|
||||
@@ -411,19 +411,34 @@ const pageKeywords = computed(() => {
|
||||
}
|
||||
})
|
||||
|
||||
// 设置动态SEO - 使用Nuxt3最佳实践
|
||||
useSeoMeta({
|
||||
title: () => pageTitle.value || '老九网盘资源数据库 - 首页',
|
||||
description: () => pageDescription.value || '老九网盘资源管理系统, 一个现代化的网盘资源数据库,支持多网盘自动化转存分享',
|
||||
keywords: () => pageKeywords.value || '网盘资源,资源管理,数据库',
|
||||
ogTitle: () => pageTitle.value,
|
||||
ogDescription: () => pageDescription.value,
|
||||
ogType: 'website',
|
||||
ogImage: '/assets/images/logo.webp',
|
||||
twitterCard: 'summary_large_image',
|
||||
robots: 'index, follow'
|
||||
// 设置页面SEO
|
||||
const { initSystemConfig, setHomeSeo } = useGlobalSeo()
|
||||
|
||||
// 更新页面SEO的函数
|
||||
const updatePageSeo = () => {
|
||||
setHomeSeo({
|
||||
description: pageDescription.value,
|
||||
keywords: pageKeywords.value
|
||||
})
|
||||
}
|
||||
|
||||
onBeforeMount(async () => {
|
||||
await initSystemConfig()
|
||||
updatePageSeo()
|
||||
})
|
||||
|
||||
// 监听路由变化,当搜索条件改变时更新SEO
|
||||
watch(
|
||||
() => [route.query.search, route.query.platform],
|
||||
() => {
|
||||
// 使用nextTick确保响应式数据已更新
|
||||
nextTick(() => {
|
||||
updatePageSeo()
|
||||
})
|
||||
},
|
||||
{ deep: true }
|
||||
)
|
||||
|
||||
// 设置HTML属性
|
||||
useHead({
|
||||
htmlAttrs: {
|
||||
|
||||
@@ -172,9 +172,12 @@ definePageMeta({
|
||||
ssr: false
|
||||
})
|
||||
|
||||
// 设置页面标题
|
||||
useHead({
|
||||
title: '管理员登录 - 老九网盘资源数据库'
|
||||
// 设置页面SEO
|
||||
const { initSystemConfig, setLoginSeo } = useGlobalSeo()
|
||||
|
||||
onBeforeMount(async () => {
|
||||
await initSystemConfig()
|
||||
setLoginSeo()
|
||||
})
|
||||
</script>
|
||||
|
||||
|
||||
@@ -242,6 +242,14 @@ definePageMeta({
|
||||
layout: 'default'
|
||||
})
|
||||
|
||||
// 设置页面SEO
|
||||
const { initSystemConfig, setMonitorSeo } = useGlobalSeo()
|
||||
|
||||
onBeforeMount(async () => {
|
||||
await initSystemConfig()
|
||||
setMonitorSeo()
|
||||
})
|
||||
|
||||
import { ref, onMounted, onUnmounted, computed } from 'vue'
|
||||
import { useMonitorApi } from '~/composables/useApi'
|
||||
const monitorApi = useMonitorApi()
|
||||
|
||||
@@ -279,16 +279,18 @@ definePageMeta({
|
||||
ssr: false
|
||||
})
|
||||
|
||||
// 设置页面SEO
|
||||
const { initSystemConfig, setRegisterSeo } = useGlobalSeo()
|
||||
|
||||
onBeforeMount(async () => {
|
||||
await initSystemConfig()
|
||||
setRegisterSeo()
|
||||
})
|
||||
|
||||
// 页面加载时获取系统配置
|
||||
onMounted(() => {
|
||||
fetchSystemConfig()
|
||||
})
|
||||
|
||||
|
||||
// 设置页面标题
|
||||
useHead({
|
||||
title: '用户注册 - 老九网盘资源数据库'
|
||||
})
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
|
||||
Reference in New Issue
Block a user