选托管平台需关注构建、缓存与CDN策略:GitHub Pages零配置但最慢(30秒~2分钟),Netlify默认最快(10~25秒)但易因重定向误配卡住,Vercel拖拽即上线但需正确设Output Directory为.,否则部署中断。

怎么选托管平台:静态网站发布速度的核心变量
HTML5网页发布快不快,不取决于你写得多好,而取决于托管平台的构建、缓存和CDN策略。Vercel、Netlify、GitHub Pages 这三类服务对纯静态 HTML 的处理逻辑完全不同——有的默认跳过构建步骤,有的强制走 CI 流程,有的甚至会因分支保护规则卡住部署。
-
GitHub Pages最慢但最“零配置”:推送到gh-pages分支或main的/docs目录后,通常需 30 秒~2 分钟生效;若启用了 GitHub Actions 自定义构建,可能额外增加 1~3 分钟排队时间 -
Netlify默认最快:关联 GitHub 后,每次git push触发部署,平均 10~25 秒完成构建(即使留空Build command);但若项目根目录下存在netlify.toml且误配了[[redirects]],会导致重定向规则校验失败,部署卡在 “Waiting for build” 状态 -
Vercel对 HTML5 友好但有隐藏门槛:拖拽上传即刻上线,但若项目中没识别出框架(比如没package.json),它可能把整个文件夹当“静态导出”,此时Output Directory必须设为.(当前目录),否则会报错No output directory was specified,导致部署中断
为什么本地能打开,上线就 404?路径与大小写是头号刺客
所有托管平台都严格区分大小写,且默认只认 index.html 为入口——但开发者常在本地用 Index.html 或 INDEX.HTM 测试,Windows 文件系统不敏感,一上传到 Linux 基础的服务器就直接 404。
- CSS 中写
src="css/style.css",但实际文件夹叫CSS/→ 托管平台返回 404,浏览器控制台显示Failed to load resource: the server responded with a status of 404 () - 图片引用
,而真实路径是
images/logo.png→ 图片加载失败,但页面其他部分照常渲染,容易被忽略 - 使用相对路径
../js/app.js跨越层级,但托管平台根目录就是项目根,../实际指向不存在的位置 → JS 报错Uncaught SyntaxError: Unexpected token '(因为返回的是 404 HTML 页面)
绑定域名后打不开?DNS 和 HTTPS 不是“设完就通”
很多开发者以为在 Netlify 控制台填了 www.yoursite.com 就万事大吉,结果几小时后仍跳转到 .netlify.app 子域——问题往往出在 DNS 记录类型和托管平台的证书触发机制上。
- 用 CNAME 绑定
www是安全的,但绑定根域名(@)必须用ALIAS或ANAME记录(普通 A 记录不行),否则 DNS 解析失败 - Netlify/Vercel 的 HTTPS 证书是按域名自动申请的,但首次添加自定义域名后,需手动点击
Verify domain或等待平台轮询验证;若域名刚从其他服务商迁移,DNS 缓存未清,会卡在 “Certificate pending” 状态 - 阿里云/腾讯云解析后台显示“已生效”,但本地
nslookup yoursite.com仍返回旧 IP → 是本机 DNS 缓存或运营商 DNS 滞后,需执行ipconfig /flushdns(Windows)或sudo dscacheutil -flushcache(macOS)
怎么确认真的上线了?别信浏览器缓存
改完代码重新上传,刷新页面还是老样子?大概率是浏览器缓存了 HTML 或 Service Worker 拦截了请求——尤其当你之前测试过 PWA 功能,sw.js 可能还在后台静默运行。
立即学习“前端免费学习笔记(深入)”;
- Chrome 开发者工具中勾选
Disable cache(Network 面板左上角),再硬刷(Ctrl+Shift+R或Cmd+Shift+R) - 访问
https://yoursite.com/?v=123强制绕过 CDN 缓存(部分平台如 Vercel 支持 query 参数穿透) - 如果用了 PWA,在 Application → Service Workers 面板点击
Unregister,再刷新;否则新 HTML 永远不会生效 - 用手机流量(非 WiFi)访问,排除公司/家庭路由器缓存干扰
curl -I https://yoursite.com 看响应头里的 cache-control 和 server 字段,都可能多等半小时。










