2b69686795
- 新增404页面,优化未找到页面体验,避免被搜索引擎索引 - 增加文件代理接口,隐藏真实文件服务器地址,支持文件请求代理 - 实现/article、/case、/product及/page动态路由兼容列表与详情展示 - 添加动态CMS页面兼容入口处理旧式路径,统一路由与SEO设置 - 新增模板1、模板7、模板2、模板3关于我们页面,实现多模板支持 - 模板增强支持CMS单页内容加载及SEO信息动态设置 - 配置环境变量及Git忽略文件规则辅助开发和构建环境管理
44 lines
1.6 KiB
TypeScript
44 lines
1.6 KiB
TypeScript
import { $fetch } from 'ofetch'
|
|
import { createError, defineEventHandler, getQuery } from 'h3'
|
|
import { useRuntimeConfig } from '#imports'
|
|
import { getTenantFromContext } from '../../utils/tenant'
|
|
import { getTemplateCodeById } from '../../utils/template-map'
|
|
|
|
/**
|
|
* 获取站点信息
|
|
* GET /api/site/info
|
|
* 代理到 CMS: /cms/cms-website/getSiteInfo
|
|
* 返回站点基础信息 + 导航(topNavs/bottomNavs) + config + setting
|
|
*/
|
|
export default defineEventHandler(async (event) => {
|
|
const config = useRuntimeConfig()
|
|
const ctx = getTenantFromContext(event, config)
|
|
const query = getQuery(event)
|
|
const modulesApiBase = config.public.modulesApiBase as string
|
|
|
|
try {
|
|
const res = await $fetch('/cms/cms-website/getSiteInfo', {
|
|
baseURL: modulesApiBase,
|
|
headers: {
|
|
TenantId: ctx.tenantId
|
|
},
|
|
query
|
|
})
|
|
|
|
// 回填模板标识 templateCode(与 SSR 中间件 tenant.ts 保持一致的口径):
|
|
// 上游只返回 templateId 主键,而主键存在跳号错位风险,前端需按 code 解析模板目录。
|
|
const payload = (res as { data?: Record<string, unknown> })?.data ?? (res as Record<string, unknown>)
|
|
if (payload && typeof payload === 'object' && !payload.templateCode && payload.templateId) {
|
|
const code = await getTemplateCodeById(payload.templateId as number, config)
|
|
if (code) payload.templateCode = code
|
|
}
|
|
|
|
return res
|
|
} catch (error: any) {
|
|
throw createError({
|
|
statusCode: error?.statusCode || error?.response?.status || 502,
|
|
statusMessage: error?.statusMessage || 'Failed to fetch site info'
|
|
})
|
|
}
|
|
})
|