feat(app): 添加多模板关于我们页面及相关路由和404页面
- 新增404页面,优化未找到页面体验,避免被搜索引擎索引 - 增加文件代理接口,隐藏真实文件服务器地址,支持文件请求代理 - 实现/article、/case、/product及/page动态路由兼容列表与详情展示 - 添加动态CMS页面兼容入口处理旧式路径,统一路由与SEO设置 - 新增模板1、模板7、模板2、模板3关于我们页面,实现多模板支持 - 模板增强支持CMS单页内容加载及SEO信息动态设置 - 配置环境变量及Git忽略文件规则辅助开发和构建环境管理
This commit is contained in:
@@ -0,0 +1,25 @@
|
||||
import type { CmsSiteInfo } from '~/types'
|
||||
|
||||
/**
|
||||
* 站点信息初始化(服务端)
|
||||
*
|
||||
* 在 SSR 首次渲染前,把中间件(tenant.ts)预取的 CMS 站点信息
|
||||
* 注入到 useState('site-info'),从而随 SSR payload 序列化到客户端。
|
||||
*
|
||||
* 为什么需要这个插件:
|
||||
* 模板解析 useTemplate().resolvedTemplateId 以「站点库(CMS site_info.templateId)
|
||||
* 优先」为准。而布局级组件 SiteHeader / SiteFooter 的 loadTemplate() 在页面
|
||||
* fetchSiteInfo() 之前就执行——若此时 siteInfo 为空,siteTemplateId 拿不到值,
|
||||
* 会回退到 app_product / 环境默认值,导致「改数据库模板 ID 不生效」,
|
||||
* 甚至布局与页面渲染出两套模板。
|
||||
* 本插件在渲染前注入 siteInfo,确保首屏 siteTemplateId 即可用。
|
||||
*/
|
||||
export default defineNuxtPlugin(() => {
|
||||
const { siteInfo } = useSite()
|
||||
const event = useRequestEvent()
|
||||
const siteInfoFromContext = event?.context?.siteInfo as CmsSiteInfo | undefined
|
||||
|
||||
if (siteInfoFromContext && !siteInfo.value) {
|
||||
siteInfo.value = siteInfoFromContext
|
||||
}
|
||||
})
|
||||
Reference in New Issue
Block a user