四次点击即可上线。从头到尾三十秒。免费版账号支持一个依赖服务器运行的应用同时在线。一个全新子域名首次响应请求时会多出零点五秒的延迟,之后就不会再有了。这三个数字里有两个只是花絮——你点点头,看完这一章就忘了。但「一个」这个数字,才是真正会改变你工作方式的数字,所以这一章我想主要讲讲它。
为什么这个限制是「一个」,而不是零个也不是无限个
大多数允许免费发布前端页面的无代码工具,要么完全不涉及依赖服务器的应用,要么对这类应用的用量限制得极其苛刻,以至于「免费」只是个技术性的说法。而在这里,一个带账号系统、数据库或多人在线状态的构建项目,走的是和静态页面完全一样的「发布」按钮,服务端也是作为这一次操作的一部分被托管和管理的——不需要单独配置数据库,不需要手动接入环境变量,也不会出现三天后才发现登录在预览环境好使、到了生产环境却报 500 错误、原来后端根本没真正部署上去这种情况。这是真实存在的能力,也正因如此,人们撞到上限时才会感到意外:在此之前,一切都感觉是无限的。
其实不是无限的。免费版账号同一时间只能有一个依赖服务器运行的应用处于上线状态。静态构建项目不计入这个限制——你想发布多少个营销页面、作品集网站都可以,没有上限。但第二个需要自己的数据库或持续运行进程的构建项目,就得排队等着——它已经完整构建好,可以预览,只是不会在自己的网址上线。如果你同一周在同时打磨三个 SaaS 想法的原型,只有一个能真正占用实际的计算资源;另外两个虽然是完成品,却没有对外的地址。我觉得这条线划得还算合理——一个静态资源包放在边缘节点上提供服务,对平台来说几乎没有成本,而一个保持热启动的服务器进程则不同——但这也意味着,到底哪个想法配得上这个名额,这个决定得在你点「发布」之前做出来,而不是等你已经习惯了同时有两个在线之后才去纠结。
郑重记录一下这四次点击
- 在构建项目的卡片上,选择发布。
- 选一个子域名—— 你的用户名 在
yourname.buildmidas.com。已被占用的子域名会提示替代方案。 - 确认。
- 从卡片上复制网址,或者之后到已发布页面查找。
不需要配置 DNS,不需要外部账号,也不用等待生效传播。至于那零点五秒——它不是排队等待,也不是「24 小时后再来看」那种延迟,只是普通的 CDN 缓存预热而已。第一位访问某个新子域名的用户,可能会赶上最近的边缘节点拉取资源包时多出的一瞬延迟;第二位访问者,以及之后的所有人,都会从缓存中直接获取。实际使用中你根本不会注意到——你发布好、点一下链接,感觉已经是瞬间加载了。我提这个只是因为总会有人靠截图加载时间为生,早晚会问为什么第一次请求和第十次请求不一样,现在你就知道原因了。
唯一值得花点时间慢慢定的决定:子域名
这个流程里其余的部分都是机械性的;只有 slug 是需要人开口念出来或凭记忆输入的部分,所以值得花点心思。对内部测试来说,「demo-v2-final-final」没问题,但发给客户就不太好了。在确认之前,先自己把这个 URL 念一遍—— riverside-cafe.buildmidas.com 读起来顺畅, riverside-cafe-mvp2.buildmidas.com 读起来不顺。在一个存在已久的平台上,简短、通用的词很快就会被占用,这就是为什么被占用的 slug 会给你推荐其他方案而不是直接报错。接受一个建议或拒绝它,但要有意识地做决定——我见过有人在演示中急需一个链接,随手抓了系统提供的建议,结果因为没有合适的时机去修改,只能忍受一个别扭的名字好几个月。
重新发布不会动到线上内容,除非你主动确认
有个道理值得早点记在心里:编辑一个已发布的构建项目,并不会改变线上网站的内容。你可以随便改坏点什么、尝试一个大胆的布局改动、迭代一整周——客户已经收藏的那个网址,会一直提供你上一次发布的内容,直到你主动再次发布为止。
这就是你的整套回滚方案,而它好就好在足够「无聊」。假设第 6 版上线后出了个 缺陷——一个表单悄无声息地无法提交了——你不需要去找什么回退命令,也不用提交工单。打开版本历史,找到第 5 版,重新发布它。同样的按钮,换成旧版本内容,线上网址立刻切回去。然后你可以从容不迫地修复第 6 版,因为线上环境在你修复期间没有处于故障状态。这套方案的代价是每次发版要多点一次——你得记得主动去发布,而不能想当然地以为编辑保存了就自动上线了。相比那些每次保存就自动上线的工具——演示时好看,真正用上三周后就很棘手——这多出来的一次点击,无论如何都是值得的。
取消发布意味着这个网址不再解析,而不是「不再被列出」
很多平台里「取消发布」的意思是把它从展示页面上隐藏起来,而网址本身还在默默提供服务。在这里,它的意思是这个地址彻底打不开了,句号——没有缓存页面,没有占位页,什么都不会解析出来。构建项目本身连同所有版本都会完整保留;之后重新发布,同一个子域名会原样恢复上线。我用过这个功能,一次是出于平常的原因(一个客户合作结束了,没人想让自家旧版 logo 还挂在一个公开链接上),还有一次是不那么平常的原因(一个构建项目泄露了不该泄露的东西,需要在点一下按钮的时间内下线,而不是走一遍向托管服务商提工单的流程)。这两种情况都需要同样的保障,也都能得到。
还有一点不要混为一谈:发布让一个网址对任何拿到链接的人都可以访问;而它是否可被发现——即是否被公开列出,有时会出现在展示区里——是完全独立的另一个开关。很多正当的已发布网站理应永远保持「仅链接可访问」的状态,而一个被选择公开列出的构建项目,本质上依然只是一个普通的已发布网站,拥有同样的历史记录和同样的取消发布按钮。



