部署 Eleventy 站点
JavaScript 零配置静态站点生成器,_site 输出部署到任何 CDN。
平台入门
为什么
Eleventy 是零依赖 SSG,支持 11 种模板语言(Nunjucks、Liquid、Markdown)。生成纯静态 HTML 无客户端 JS,站点极快易部署。
平台即服务采用率 2024 年增长 24%,团队从虚拟机管理转向 git push 部署。the cloud infrastructure market reached $330B in 2024, growing 22% year-over-year (Synergy Research),PaaS 层捕获了大多数新工作负载。
何时使用
博客、文档和内容站点且想要零 JS 和多模板选项用 Eleventy。需要交互的应用避免。
如何做
1. 构建 — npx @11ty/eleventy 输出 _site/
2. 部署 — 上传 _site/ 到任何静态主机
3. 配置 — .eleventy.js 配集合、过滤器、透传
4. 数据 — _data/ 目录全局数据文件
5. 模板 — 11 种语言任选,.eleventy.js 配置
示例
// .eleventy.js
module.exports = (eleventyConfig) => {
eleventyConfig.addFilter("date", (d) => new Date(d).toLocaleDateString());
return { dir: { input: "src", output: "_site" } };
};
// 部署到 Netlify
[build]
command = "npx @11ty/eleventy"
publish = "_site"
常见问题
- ⚠模板未渲染 — 模板语言扩展名或配置目录不匹配
- ⚠资源未复制 — 忘记 .eleventy.js 中 passthrough copy
- ⚠环境间配置漂移 — 使用基础设施即代码(Terraform/Pulumi)保持 dev/staging/prod 一致
最佳实践
- ✓静态资源用 passthrough copy — eleventyConfig.addPassthroughCopy('img')
- ✓标记内容用集合 — eleventyConfig.addCollection 可复用查询
- ✓设置健康检查和优雅关闭 — 处理 SIGTERM 以在退出前排空进行中的请求