打不开的网址0:00
你把网址发给朋友 , 对面回你三个字 : 打不开 ; 你低头一看那串地址 , 开头写着 localhost: 3000。 用 AI 写代码的人几乎都在这儿栽过 ,而且栽得莫名其妙 ,因为在你自己电脑上它明明好好的 , 从 " 只有你能用 " 到 " 谁点开都能用 ", 中间差的这东西叫 " 部署 "。
先把结论给你 : 部署不是一门技术 ,是三个决定 ; 这三个决定你自己做完 , 剩下的脏活累活全可以交给 AI。
localhost 是什么0:36
先说 " 为什么打不开 " 这个搞明白了 , 后面那些名词你听着就不虚了 。 localhost 翻成中文就是 " 本机 ", 指的就是你现在坐在前面的这台电脑 , 所以当你在地址栏敲下这串字的时候 , 你的浏览器压根没有连上网 , 它只是回过头去问你自己这台电脑一句话 : 喂 , 你身上有没有东西在 3000 号窗口营业 ?
而那个正在营业的东西 , 就是 AI 刚才在终端里帮你跑起来的程序 。 这里有个细节很多人没意识到 : 终端一关 , 它就没了 。
现在把同一件事套到你朋友身上 : 他点开你发的那串网址 ,他的浏览器做的是一模一样的事 , 回过头去问他自己的手机 : 你身上有没有东西在 3000 号窗口营业 ?
他手机里当然没有你写的程序 , 所以打不开一点都不奇怪 ; 所以 localhost 根本不是你程序的 " 公开地址 ", 它更像一句对设备自己说的暗号 , 意思是 : 去问我现在手上这台机器 , 谁点开这个链接 , 谁的浏览器就去问谁的设备 。
所以 localhost 开头的地址只对你自己这台设备有效 , 传给别人一定打不开 。 听到这你可能会想 : 那我把整个项目文件夹打包发给他不就完了 ?
这确实是一条路 ,但那是工程师之间的做法 : 对方得自己装运行环境 、 装一堆依赖包 , 还得回头来找你要 API 密钥 。
对一个完全不懂技术的朋友来说 , 光是装环境这一步就不现实 ; 你真正想要的是什么 ? 是任何人什么都不用装 , 随手点一下链接 , 立刻就能用 。
开餐厅比喻2:21
这中间差的东西就是 " 部署 "。 我用开餐厅来讲这件事 : 你在自己家厨房是做了一道特别厉害的私房菜 , 自己吃觉得绝了 ,但只要这道菜还留在你家厨房里 , 全世界除了你谁也吃不到 。
部署就是你决定走出家门 , 到街上正式开一家餐厅 。 开这家餐厅 , 你要搞定三件事 : 第一 ,在街上租一间 24 小时不打烊的店面 ,也就是在云端租一台永远开着 、 绝对不关机的服务器 ; 因为你的笔记本会合盖 , 会被你背出门 ; 但想用你产品的人, 可能半夜想起来要用 ,也可能人在地球另一边 , 这台机器得随时醒着替你招待客人 ; 第二 , 把家里
的厨具 、 调料 、 食材全部搬进店里 ,而且要在店里做出跟家里一模一样的味道 。 换成软件的说法 , 就是把你的代码 、 运行环境 、 还有 API 密钥完整搬到那台远程服务器上, 让程序能在上面顺利跑起来 。
最容易出岔子的 , 就是这个 " 味道 "。 后面讲后台的时候 , 我会告诉你它具体会怎么翻车 。 第三 ,在门口挂一块明亮好记的招牌 , 客人看见招牌就能推门进来 ; 也就是给这台服务器绑一个固定的公开网址 , 让全世界的浏览器顺着这串地址找到你的程序 。
租店面 、 搬厨房 、 挂招牌 , 这三件事加起来 ,在软件的世界里就叫 " 部署 "。 那这台永远开着的电脑 , 你上哪儿弄去 ?
通常有三条路 , 我一条条说 , 你会听出来该走哪条 。 第一条 : 自己在家养机器 。 把笔记本开着 ,不让它睡觉 ; 或者买台迷你主机插上网线 ,24 小时不关机 。
三条路4:00
这总行了吧 ? 技术上确实行得通 ,但家里一停电 , 或者网络稍微抖一下, 网站立刻就挂 , 还得你自己手动去救 。
更麻烦的是安全 : 你要让外面的人能连进你的电脑 , 等于把私人设备和家里的网络直接暴露在公开网络上, 对没有技术背景的人来说又麻烦又危险 。
第二条 : 租一台云端虚拟主机 。 就是常听到的 VPS, 像 DigitalOcean、Linode、AWS 的 Lightsail, 一个月大概几块美金 ; 云计算公司在机房里切一台虚拟电脑租给你 , 听起来不错 ,但你租下来会发现它是一间全空的毛坯房 , 只有黑底白字的终端 , 连个桌面窗口都没有 。
你得自己装系统 , 自己配防火墙 , 装好运行环境 , 还得让程序在后台稳着跑 , 全是你一行行敲出来的 。
这是专业后端和运维工程师干的活 ;AI 确实能帮你搞定大部分设置 ,但机器归你管 , 出事半夜爬起来的也是你 。
所以来到第三条路 : 现代的托管部署平台 。 就是你最近可能总听人提起的 Vercel、Netlify、Railway、Cloudflare 这些 。 它说穿了就是把第二条路那些繁琐的设置和维护打包成了现成服务 , 复杂的命令全藏在背后 。
你只要把 GitHub 上的代码授权给它 , 之后每次在本地改完推上 GitHub, 平台就自动帮你备好服务器 、 装好环境 、 拉最新版本 、 配好公开网址 、 直接上线 。
你现在用 AI 写代码 , 精力想全放在产品上, 根本不想碰服务器 , 那第三条路就是省时省力的首选 。
可问题来了 : 这些托管平台 , 每一家都号称自己一键部署 , 名字一大堆 , 你根本看不出它们之间差在哪儿 。
很多人第一反应是跑去挨个研究各家的规格和功能对比 , 我劝你别 。 越看越乱 。 平台只是工具 , 工具怎么选取决于活儿是什么 , 所以你得先搞清楚自己这个项目到底需要什么 。
这三个问题 , 就是我说的那三个决定 。 第一个问题 : 你的网站需不需要有后端替你做运算 ? 我们平常看到的网站 , 画面再复杂 , 说到底就两个角色 。
决定一:后端6:29
第一个叫 " 前端 ", 相当于这家店的外场 : 那些按钮 、 输入框 、 配色排版 、 动画效果 , 凡是访客看得见摸得着的界面 , 全属于前端 。
第二个叫 " 后端 ", 相当于内场 : 替用户记账算钱 、 保护登录密码 、 拿着 API 密钥去调用 AI, 这些访客看不见 、 也绝对不能让外人看见的敏感运算 , 全属于后端 。
关键在于 ,不是所有店都需要开厨房 。 很多项目根本不用内场开火 ,有个漂亮的外场柜台就够了 。 这就是常说的 " 纯前端静态网站 "。
比如个人作品集 、 博客文章 、 活动介绍页 , 或者纯粹在浏览器里跑的小游戏 。 这类网站的内容在你写代码的时候就已经定稿 , 访客点进来只是浏览 ,不需要后端在云端耗着电做计算 。
这种网站只在乎两件事 : 加载够不够快 、 全球连得稳不稳 。 这时候你需要的是 CDN, 全球内容分发网络 。
它会把你的网页文件自动复制到全球几百个机房里 , 访客在哪儿点开 , 就由离他最近的机房送出 , 几乎是秒开 。
怎么判断自己算不算 " 静态网站 "? 最省事的办法是直接问你的 AI: 我这个项目是纯静态网站 , 还是包含后端运算 ?
你也可以自己检查 , 标准很简单 : 不需要登录 、 不存私密数据 、 也没有敏感密钥要藏在后端 , 那就是纯静态 ; 反过来 , 需要登录 、 需要存取数据 、 或者需要调用 AI 帮忙 , 那就是需要后端运算的动态网站 。
确认了需要后端 , 接着问第二个问题 。 这个问题最容易被跳过 ,但一旦答错 , 你可能会把后端丢到一个根本不收后端的平台上, 然后对着报错查一晚上 。
决定二:架构8:39
问题是 : 你的程序是全栈框架 , 还是前后端分离 ? 这两种架构的思路和写法完全是两回事 , 部署起来也不一样 。
第一种叫 " 全栈框架 ", 把外场画面和内场运算全写在同一个项目里 , 像小餐馆的柜台和厨房在同一个空间 。
现在最主流的是 Next.js 这类框架 , 你在同一个项目里一边写前端画面 , 一边直接写连数据库的后端逻辑 。
部署最省事 : 整包丢给平台 , 前端后端一次架好 。 第二种叫 " 前后端分离 ", 把外场和内场彻底拆开 。
外场要数据的时候 , 才调用 API 去向内场要 。 具体写代码时, 你电脑里会有两个分开的项目 : 前端可能用 React 写界面 , 后端另外用 Python 或者 Node.js 写逻辑 。
因为是两套独立系统 , 部署时必须分开放在两个不同的平台上, 最后再把两边串起来 , 判断自己属于哪一种 。
有个特别土但特别准的办法 : 看你平时怎么把程序跑起来 。 只要开一个终端窗口 , 敲一行命令 , 整个网站就能动 , 那你是全栈项目 。
如果必须先开一个窗口跑后端 , 再开第二个窗口跑前端 , 两个都得开着网站才正常 , 那就是前后端分离 。
架构确认完 , 最后一个问题 : 这台云端电脑 , 需不需要 24 小时一直开着 ? 云计算世界里主要分两种模式 : 第一种是常驻服务器 , 云端机房里真的有一台电脑 24 小时开着不关机 。
决定三:常驻或Serverless10:03
它适合长时间持续运作的任务 , 比如跑十几分钟的视频转码 、 后台定时抓数据的爬虫 、 多人的实时聊天室 。
但机器永远开着待命 , 哪怕半夜没人用 ,也一样耗电 , 所以这类服务每个月通常要付一笔固定的机器月租 。
第二种是 Serverless, 无服务器运算 。 平常根本没有电脑在开机 , 只有访客点下按钮的那一瞬间 , 云端才在几毫秒之内启动一段程序帮它算 , 算完几秒钟内又立刻关掉 。
它特别适合短暂的 、 触发式的动作 , 比如登录验证 、 记一笔账 、 调用一次 AI 拿回结果 。 因为没人用的时候 , 机器完全不开 , 它按实际运算次数计费 , 没人用就是零成本 , 所以这类平台通常有很大方的免费额度 。
三个问题问完了 。 假设你手上是一个能登录 、 还能调用 AI 分析的记账工具 , 我们走一遍 : 它需要登录还要调用 AI,是有后端的动态网站 ; 你回头看一眼终端 , 平时只开了一个窗口 , 那是全栈项目 , 里面的功能不管记账还是让 AI 分析 , 都是点一下三五秒就算完的短动作 。
你可能会想 : 都要调 AI 了 , 那不得一直开着 ? 不用 , 调用一次就三五秒的事 , 所以 Serverless 最省钱也最合适 。
三个答案串起来 , 需求就唯一确定了 。 再说一遍这三个决定 : 要不要后端 、 全栈还是分离 ; 要不要一直开着 。
记住这三句 , 现在才轮到 " 挑平台 "。 这三个答案 , 会直接把你送到某一类平台门口 。 我一类一类说 , 你对号入座就行 。
挑平台11:53
第一类 : 专门放纯静态网站的 。Cloudflare、Pages、Vercel、Netlify、 甚至 GitHub Pages, 都能放静态网站 。 但如果你的项目确定是纯静态 , 我最推荐 Cloudflare Pages,因为 Cloudflare 本身就是全世界最大的网络加速公司 , 全球节点最多 , 给个人开发者的免费流量基本上没有上限 , 网站打开速度真的快 。
这里有个例外 : 如果你做的是营销活动页 , 希望访客留个邮箱报名 ,但又完全不想写后端 , 那我会推荐 Netlify。
它内建了表单收集功能 , 能自动帮你把客户信息收下来 。 本来以为要为一个报名框专门搭个后端 ,其实不用 。
第二类 : 主打 Serverless 的全栈托管平台 。 最知名的是 Vercel,Netlify 现在也支持 ,但只要你写的是全栈框架 , 特别是 Next.js, 首推一定是 Vercel。
原因很实在 :Next.js 这个框架本身就是 Vercel 自己开发和维护的 , 自家做的框架自家最懂 , 对 Next.js 的支持度和整合度是市面上最好的 。
你把 GitHub 项目授权给它 , 前端画面和后端逻辑点一下全架好 , 到这儿你应该能对号入座了 。 要是你刚才答的是需要一直开着 , 重点在下面这类 。
第三类 : 常驻服务器和容器平台 。 就是机房里真的有台电脑 24 小时替你开着 。 常听到的有 Railway、Render、Render、Zeabur,也算这一类 。
它专门收留刚才说的那些长时间在后台跑的活 ,也包括前后端分离里那个独立的后端 。 因为机房是真的替你留着运算资源 , 每个月通常有 5 到 7 块美金的最低月租 , 真需要一台不关机的机器 , 我会推荐 Railway 或者 Render, 界面简单好懂 。
最后, 还有一类 : 常听到的云计算巨头 。AWS、Google Cloud、Azure。 如果你一听到 " 部署 " 就跑去注册 AWS 账号 , 一进后台 , 大概率会被里面上百种服务劝退 。
对只想用 AI 快点把产品做出来的人来说 , 直接上手 AWS 属于拿牛刀杀鸡 。 而且刚才说的 Vercel、Railway 这些平台 , 底层几乎都是租用 AWS 的机房 , 只是把最痛苦的那部分服务器维护包装成了一颗按钮 。
你多付的那一点点钱 , 买到的是不用自己半夜爬起来修机房的时间 。 平台选定了 , 第一件事是去那个平台注册一个账号 。
说起来有点好笑 , 这是整个流程里为数不多真的需要你亲自动手的事 。 账号注册好 , 很多人这时候开始慌 : 我是不是要进后台点一堆看不懂的设置 ?
不用 。 你要做的是去找到对应平台的 MCP, 用 Vercel 就找 Vercel 的 MCP, 用 Netlify 就找 Netlify 的 MCP。 MCP 简单说 , 就是让你的 AI 助手拥有直接操作那个平台的能力 , 上传和部署它能替你一键搞定 。
但这不代表所有东西丢给 AI 就万事大吉 。 你打开后台的时候 , 还是得知道自己在看什么 , 这些东西都是什么意思 。
因为 AI 能替你点按钮 ,但出了问题 , 判断这是哪一类问题的人还得是你 。 现在主流的托管平台 , 后台功能基本都差不多 。
我拿 Vercel 举例 , 新手真正需要看懂的就四个地方 。 第一个地方叫 Deployments, 部署状态 。AI 把代码推上去之后, 你进后台第一个要看的就是这一页 。
后台四页15:47
它像项目的实时看板 , 每一次发布的记录都在上面 : 要么亮绿灯表示成功 , 要么冒红字报错 。 看到绿灯 , 说明代码已经被云端顺利接收 ,而且打包完成了 。
但这里有个新手最容易踩的坑 : 看到 " 部署成功 ",不代表你的网站点开就一定能正常跑 。 很多人兴冲冲点开网址 , 结果按钮按了没反应 , 或者直接报错 , 心里纳闷 : 后台明明写着 " 成功啊 "。
原因通常出在下一个地方 。 第二个地方叫 Environment Variables, 环境变量 。 刚才那个 " 明明成功了 , 却跑不起来 ", 十有八九就是这儿的问题 。
环境变量16:39
我们在自己电脑上写程序的时候 , 那些敏感的密钥 , 比如 OpenAI 的 API key、 数据库密码 , 一般都放在本地一个叫做 .env 的文件里 。
这个文件绝对不能跟着代码一起推上 GitHub,不然全世界都能看见你的密码 。 这条是铁律 , 没有例外 。 但既然它没上 GitHub, 云端平台拉代码的时候 , 自然也拿不到这组密钥 。
于是访客一点网站上的功能 , 程序去找钥匙发现没有 , 后端当场就崩给你看 。 所以绿灯只说明代码搬过去了 , 管不着钥匙有没有跟着搬 。
你得到 Environment Variables 这一页 , 把本地那个文件里的密钥名称和内容一条条贴进去 , 云端服务器在跑的时候才能安全地把钥匙交给你的程序 。
到这一步 , 那个刚才还打不开的网站才算真正活过来 。 这就是刚才说的第二件事没做完 : 厨具食材都搬过去了 , 味道还是不对 。
第三个地方叫 Domains, 域名。 项目刚部署好的时候 , 平台通常会自动分配一串免费的默认网址 ,但那串地址后面拖着一长串随机字母 , 发给客户总觉得差点意思 , 想换成自己专属的正式门牌 。
就在 Domains 这一页把买好的域名绑上去 。 至于域名去哪买 , 新手怎么挑才不会买贵 , 那是另一个话题 , 这节课不展开 。
第四个地方叫 Logs, 日志 。 就是你网站的实时活动记录本 。 记录程序在云端跑的时候 , 每分每秒背后发生了什么 。
看日志找证据18:13
当你把链接发给朋友试用 , 朋友开始点按钮输入数据 , 你打开后台的 Runtime Logs, 就会看到一条条实时跳出来的记录 , 比如几点几分有人打开了首页 , 或者新增了一笔数据 。
它真正的价值在出事的时候 。 万一朋友试用时遇到问题 , 你不需要自己瞎猜哪里坏了 。 出事那一刻 ,Runtime Logs 里会直接跳出红色的错误信息 。
你把这段错误记录复制下来贴给 AI, 或者让 AI 通过 MCP 自己去读日志 , 它就能根据日志里的证据找出原因 , 帮你修好 。
这里有个习惯值得你带走 : 网站出问题的时候 , 第一反应不该是猜 ,而是去看日志 。 你猜出来的是可能性 , 日志给你的是证据 , 带着证据去找 AI, 它才知道该往哪查 。
这节课我希望你带走的就是一句话 : 部署不是一门技术 ,是三个决定 。 对着你的项目问一遍 : 要不要后端 , 一个窗口还是两个窗口 ; 要不要一直开着 。
总结与安全19:15
这三个问题答完 , 平台基本就是唯一的 。 然后注册账号 , 装上 MCP, 剩下的交给 AI。 你在整个链条里真正不可替代的位置 ,是做 " 判断 " 和 " 看懂后台 " 那四个地方 ,不是敲命令 。
还有一件事 , 跟部署本身没关系 ,但我得说 : 网站部署上线 ,不等于你的产品就是安全的 。 恰恰相反 , 网站一旦公开 , 往往才是安全风险真正开始的地方 。
这节课把流程简化 ,是为了让没有技术背景的人也能先跑通 , 先有成就感 ,但绝不代表真正上生产环境的软件就这么简单 。
安全这块得你单独花时间 , 它是一个需要严肃对待的专业领域 。 开头那个 " 打不开 ", 现在你知道该怎么办了 。
去看一眼你手上那个还只能在自己电脑上跑的小东西 , 用刚才那三个问题过一遍 , 一分钟之内你就能知道它该去哪个平台 。
你要是卡在哪一步 , 或者想听我单独讲讲前后端 、 讲讲买域名 , 评论区告诉我 ,有用就点个赞 。
我们下次见 。