游客发表
打开浏览器,静态敲几个字母,网站一个页面就出来了。静态没有数据库查询,网站没有服务器端脚本执行,静态文件直接躺在那里,网站谁访问都一样。静态这就是网站静态网站——说穿了,就是静态一堆HTML、CSS、网站JavaScript文件,静态可能还有几张图片、网站几个字体文件,静态仅此而已。网站
我最早接触静态网站是静态给一个朋友的小咖啡馆做页面。三页:首页、菜单、联系方式。用记事本写完HTML,FTP传到虚拟主机,完事。十年过去了,那个站还在跑,朋友早就不管了,页面也没崩。这大概是静态网站最迷人的地方——它不会因为PHP版本升级、数据库连接失败、插件冲突而突然白屏。
最原始的静态网站就是手写HTML文件。一个index.html,一个style.css,可能再加个script.js。浏览器请求什么,服务器就返回什么文件,没有中间商赚差价。这种站加载快得离谱,因为没有任何后端处理逻辑。
但手工维护超过二十个页面就是灾难。改个导航栏,得把每个文件打开一遍。我试过用Dreamweaver的模板功能,但生成出来的代码臃肿得让人难受。后来干脆写了个简单的Shell脚本批量替换,算是早期“构建工具”的雏形。
Jekyll在2008年出现时,很多人没当回事。它做的事情很简单:你写Markdown,它生成HTML。你定义布局模板,它套用到每个页面。GitHub Pages原生支持Jekyll,一下子把静态网站的门槛踩平了。
Hugo是后来者,用Go写的,构建速度夸张。我有个三百多篇文章的博客,Hugo生成全站不到一秒。Hexo在中文圈流行过一阵,Node.js生态,主题多,但构建速度比Hugo慢不少。Eleventy(11ty)更灵活,不强制你用什么模板语言,JavaScript数据文件可以直接喂给模板。
这些工具的共同点是:源文件是Markdown、YAML、JSON之类的文本格式,构建产物是纯静态文件。部署时只需要把生成的public或dist目录扔到任何能托管文件的地方。
Netlify和Vercel把静态网站推到了新阶段。它们提供持续部署——你push代码到Git仓库,它们自动构建、发布、分配CDN。还支持边缘函数,让静态站也能处理表单提交、用户认证这类动态需求。
Astro是最近比较有意思的项目。它默认输出零JavaScript,但允许你在页面里“岛屿式”地嵌入交互组件。一个电商产品页,大部分内容是静态的,只有购物车按钮需要JS,Astro就只给那个按钮加载React或Vue。这种思路让静态网站重新变得有竞争力。
GitBook早期版本生成的就是静态网站。现在Docusaurus(Meta出品)和VitePress(Vue团队出品)是文档站的主流选择。它们内置了侧边栏导航、全文搜索、版本切换。我参与过一个开源项目,文档用Docusaurus搭建,每次发版自动更新,维护成本几乎为零。
Obsidian和Logseq这类笔记工具也能导出静态网站。我把自己的读书笔记用Obsidian发布成静态站,放在Cloudflare Pages上,访问速度比Notion快得多。
大部分独立博客都是静态的。写Markdown,推送到GitHub,Netlify自动构建。没有WordPress的数据库负担,没有插件安全漏洞。我自己的博客从Ghost迁移到Hugo之后,服务器费用从每月20美元降到0——托管在GitHub Pages上,自定义域名一年也就十美元。
摄影师和设计师喜欢用静态站做作品集。图片多,但不需要动态交互。用Next.js的静态导出功能,配合图片优化,加载速度比传统CMS快好几倍。
很多公司官网其实是静态的。首页、产品页、关于我们、招聘信息——这些内容更新频率低,用静态生成完全够用。Stripe的文档站、Tailwind CSS的官网、Vite的官网,都是静态网站。它们看起来现代、交互流畅,但底层就是预渲染的HTML文件。
甚至一些电商网站的产品列表页也是静态生成的。库存和价格通过客户端JavaScript从API获取,但页面骨架是静态的。这样首屏加载极快,SEO也友好。
静态网站没有死。它只是换了个形式,从手写HTML变成了构建工具的产物,从FTP上传变成了Git推送。核心没变:文件预先准备好,谁来看都一样。
友情链接