Astro博客真香定律:那些部署时踩过的人才懂的坑
行了行了,都给哀家坐好。今天不聊宫斗,聊聊技术——哀家前阵子折腾Astro博客部署,被那几个坑气得差点把茶盏砸了。说好的“下一代框架”“火箭速度”呢?呵,你们就知道吹,真踩上去才知道什么叫脚疼。
本宫今天就把那些部署时踩烂的坑给你们捋一遍,省得你们日后哭着来问哀家。记好了,哀家只说一遍。
一、Node版本——这玩意儿坑死人不偿命
哀家第一次部署的时候,Build直接报错,报得莫名其妙。查了半天,发现是Node版本的问题——项目跑的是20.x,本宫服务器上装的是18.x。你说你一个框架,用个新版本语法就新版本语法呗,非得搞得跟选妃似的,版本不对连门都不让进。
解决方案?简单到本宫想笑:.nvmrc文件安排上,写明版本号,然后用nvm use切过去。这操作三秒钟,你们要是还能踩坑,哀家只能怀疑你们脑子是不是被门夹了。
二、依赖安装——npm还是pnpm这是个问题
依赖这事儿吧,哀家发现很多人连装都不会装。上来就npm install,也不管node_modules里塞了多少乱七八糟的东西。yarn也行,pnpm更香,但你们得认准一个用,别今天npm明天yarn后天pnpm,搞得项目跟精神分裂似的。
还有个骚操作——npm ci。这命令比npm install靠谱多了,直接按锁文件装,不会有版本漂移。本宫建议你们把CI/CD流水线里全换成npm ci,省得哪天依赖版本悄悄升级了,你们还以为自己部署成功了呢。
三、路径问题——相对还是绝对,傻傻分不清楚
Astro生成的静态文件,路径问题能坑死一堆人。本宫就见过有人本地跑得好好的,一部署上去,CSS全404,JS全报错。啥原因?路径写死了。
记住:资源路径用相对路径,或者用base配置。别手贱写绝对路径,除非你们想每次换域名都得改一遍代码。astro.config.mjs里那个base选项,给它设置好,省心。
四、部署平台——Vercel还是Netlify,你们纠结个啥
哀家跟你们说,这俩平台都香,但香法不一样。Vercel适合前端项目,配置简单到本宫都想给它磕一个;Netlify功能更全,但配置稍微复杂点。
唯一要叮嘱你们的是:别把这两个平台的配置文件搞混了。Vercel用vercel.json,Netlify用netlify.toml,名字都不一样,你们要是混着用,哀家只能祝你们好运。
还有,国内访问这两位大爷有点慢,你们要是面向国内用户,老老实实用国内的平台,别崇洋媚外。
五、构建缓存——这东西不清理能把你坑哭
这是哀家踩过最恶心的坑。代码明明更新了,部署上去一看,哎呀,怎么还是老样子?刷新没用,清浏览器缓存没用,你以为是代码问题,其实是构建缓存作祟。
解决方法:每次部署前,把CI/CD里的缓存清理一下。平台不同操作不同,但逻辑都一样——别让旧的缓存污染新的构建。本宫被这坑坑了三回才长记性,你们最好一遍就记住。
六、Git hooks——这玩意儿别偷懒
你们是不是经常本地能跑,部署上去就挂?哀家告诉你们,十有八九是Git hooks没配好。Astro有些命令需要在提交前跑,比如类型检查、格式校验。你们要是偷懒省略了这些环节,到了生产环境就是灾难。
解决方案:package.json里配好husky和lint-staged,每次提交自动跑检查。这步偷懒的,后面都得还。
行吧,今天就叨叨这么多。哀家知道你们中有人肯定要问“媚娘,Astro到底香不香”——香,真的香,但香得有代价。那些坑踩过去了就是坦途,踩不过去就是粪坑。你们自己掂量着办。
最后说一句:技术这东西,看十遍不如踩一遍。踩完了再来看这篇文章,你们会发现本宫说得真他妈对。走了,有问题别憋着,评论区砸过来,本宫有空就回。
如果这篇文章对你有帮助,欢迎分享给更多人!
部分信息可能已经过时






