1.2 KiB
1.2 KiB
Download 页面静态化设计
页面范围
/download/download/[...segments]
数据来源
public/dl-index/all.json与manifest.json描述下载目录。public/_build/docs_paths.json(由scripts/export-slugs.ts写入)提供所有需要静态生成的路径。
静态导出策略
- 在两个页面模块顶端添加
export const dynamic = 'error',禁止运行时回退。 /download/[...segments]使用generateStaticParams()从docs_paths.json读取路径列表并拆分为数组,导出dynamicParams = false。- 在服务端组件内不直接调用
new Date(),改用字符串比较或Date.parse;时间展示统一下沉到ClientTime客户端组件。 - 404 分支保持不变,依旧在构建期根据静态数据输出。
子任务拆分
- 数据脚本:在
scripts/export-slugs.ts中收集下载目录路径并输出docs_paths.json。 - 页面改造:更新
generateStaticParams()、添加dynamicParams = false和时间处理逻辑。 - 组件调整:在需要展示更新时间的位置引入
ClientTime并加上suppressHydrationWarning。 - 校验:
scripts/check-build.js校验docs_paths.json非空且至少包含一级路径。