本项目已从动态加载 header 和 footer 的方式升级为基于布局文件的静态构建系统。新系统提供了更好的性能、SEO 友好性和维护性。
- 更快的加载速度:无需等待 JavaScript 动态加载组件
- 减少网络请求:所有内容在一个 HTML 文件中
- 更好的缓存策略:静态文件可以被更有效地缓存
- 完整的 HTML 结构:搜索引擎可以立即看到完整页面内容
- 更好的爬虫支持:无需执行 JavaScript 即可获取页面内容
- 改善的页面加载指标:更好的 Core Web Vitals 分数
- 统一的布局管理:所有页面共享同一个布局模板
- 内容与布局分离:页面内容独立于布局结构
- 更好的可扩展性:添加新页面更加简单
x2agent.github.io/
├── layouts/
│ └── base.html # 基础布局模板
├── pages/
│ ├── index-content.html # 首页内容
│ └── market-assistant-content.html # MarketAssistant页面内容
├── components/ # 旧的组件文件(可删除)
│ ├── header.html
│ └── footer.html
├── css/
│ └── style.css
├── js/
│ └── common.js # 简化后的脚本
├── images/
├── build.js # 构建脚本
├── index.html # 生成的首页
├── market-assistant.html # 生成的MarketAssistant页面
└── README-LAYOUT.md # 本文档
-
创建页面内容文件
# 在 pages/ 目录下创建新的内容文件 touch pages/new-page-content.html -
编辑页面内容
<!-- pages/new-page-content.html --> <section class="hero-section"> <h1>新页面标题</h1> <p>页面内容...</p> </section>
-
在构建脚本中添加页面配置
// build.js 中的 pages 对象 const pages = { // 现有页面... 'new-page.html': { title: '新页面标题', contentFile: 'pages/new-page-content.html', head_extra: '', scripts: '' } };
-
运行构建脚本
node build.js
-
编辑页面内容文件
# 编辑对应的内容文件 # 例如:pages/index-content.html
-
重新构建
node build.js
-
编辑布局模板
# 编辑 layouts/base.html -
重新构建所有页面
node build.js
布局模板 layouts/base.html 支持以下变量:
{{title}}- 页面标题{{head_extra}}- 额外的 head 内容(如特殊的 meta 标签、CSS 等){{content}}- 页面主要内容{{scripts}}- 页面特定的 JavaScript 代码
- StaticTemplateEngine: 简单的模板引擎,支持变量替换
- buildPages(): 构建所有配置的页面
- ensurePagesDirectory(): 确保必要的目录存在
# 构建所有页面
node build.js
# 启动本地服务器预览
python -m http.server 8000- 修改内容:编辑
pages/目录下的内容文件 - 修改布局:编辑
layouts/base.html(如需要) - 构建:运行
node build.js - 预览:使用本地服务器查看效果
- 部署:提交生成的 HTML 文件
- ✅ 创建了
layouts/base.html布局模板 - ✅ 提取页面内容到
pages/目录 - ✅ 创建了构建脚本
build.js - ✅ 简化了
js/common.js,移除动态加载逻辑 - ✅ 生成了新的静态 HTML 文件
# 删除旧的组件文件(可选)
rm -rf components/- 构建后提交:每次修改内容后,需要运行构建脚本并提交生成的 HTML 文件
- 保持同步:确保页面内容文件和生成的 HTML 文件保持同步
- 测试预览:在提交前使用本地服务器测试页面效果
Q: 构建失败,提示找不到内容文件
A: 确保 pages/ 目录下存在对应的内容文件
Q: 页面样式丢失 A: 检查 CSS 文件路径是否正确,确保在正确的目录下运行构建脚本
Q: JavaScript 功能不工作
A: 检查构建脚本中的 scripts 配置是否正确
# 检查生成的文件
ls -la *.html
# 查看构建日志
node build.js
# 验证内容文件
ls -la pages/通过这个新的布局系统,X2Agent 网站现在具有更好的性能、可维护性和扩展性。如有任何问题,请参考本文档或检查构建脚本的输出信息。