Astro adapter 与 SSR/SSG 模式不匹配 —— 排查与修复
Astro 部署失败或页面白屏,多半是 adapter 跟 output 模式对不上,或某个路由的 prerender 标记悄悄推翻了全局模式。本文给出诊断与修复(Astro 5/6,2026 年 6 月)。
Vercel build、Firebase Hosting、Astro 部署、路由 404、sitemap、robots.txt。
部署阶段的报错往往不是代码错,而是构建工具配置错。 这里覆盖 Vercel、Firebase Hosting、Astro / Next 静态站的典型问题:build 失败、卡住、500、404、sitemap / robots 不生效。
Astro 部署失败或页面白屏,多半是 adapter 跟 output 模式对不上,或某个路由的 prerender 标记悄悄推翻了全局模式。本文给出诊断与修复(Astro 5/6,2026 年 6 月)。
Vercel/Netlify 的 preview URL 出现在 Google 索引里,多半是自定义域名 preview、可被索引的最新 branch deploy,或 sitemap/canonical 盖过了自动 noindex。这里给出快速修法。
GitHub Actions 部署步骤一直挂着,到 360 分钟 job 上限被取消。最快的修法是用 shell timeout 包住命令再加非交互参数。完整诊断与修复见正文。
monorepo 里有三个可部署 app,Vercel 只发了一个。修好每个项目的 Root Directory、Skip deployment 开关和 Turborepo filter 作用域 —— 含 2026 年 6 月的准确菜单路径。
Netlify Function 本地正常,但闲置后首次请求返回 502 报 'Task timed out after 10.00 seconds'。最快的修复:把重型 SDK 改成懒加载、移除 aws-sdk v2,让冷启动初始化塞进 10 秒同步上限。
ISR 页面 revalidate 窗口过了还在发旧 HTML。先读 x-vercel-cache 响应头、手动触发 on-demand 重验,再定位真正原因:边缘缓存盖住 ISR、后台渲染失败,或路径不匹配。
部署完用户还看到旧站点,因为 service worker 一直把缓存里的旧 bundle 发回去。修复办法:HTML 走 NetworkFirst、skipWaiting + clientsClaim、sw.js 不缓存、再给被困用户发一个同 URL 的自卸紧急关停。
Vercel 构建跑到 45 分钟被 'Build step did not complete within the maximum of 45 minutes' 强杀,通常是缓存失效、页面生成失控,或某个构建后脚本卡死。本文帮你定位是哪一种。
换了新域名但页面 canonical 还指老的——修复硬编码 URL、CDN 缓存、sitemap、301 和 Search Console。
在 Vercel / Cloudflare / Netlify 加完域名后 SSL 几小时不变绿?几乎都是 DNS、CAA 记录或 HTTP-01 验证被拦。按这个顺序排查。
Vercel / Firebase / Cloudflare 都说部署成功了,访客刷新还是昨天那版。本文给出按命中率排序的 5 类原因,以及一条从客户端到 origin 的 10 分钟诊断路径。
改完 DNS,有人看到新 IP、有人还是旧的。本文讲清楚为什么地区不一致是正常现象,并给一套可量化的修复与验证路径。
本地能跑、线上 500。要么宿主没设这个变量,要么客户端前缀不对(PUBLIC_ / VITE_ / NEXT_PUBLIC_)。10 分钟内排查并修好。
首页正常,但访问 /about 或刷新 /blog/post 就 404?几乎都是 firebase.json 的 rewrites 问题。本文给出 SPA、SSG、Astro、Next.js 的修复方案(2026 年 6 月已核实)。
分享到 LinkedIn / X / Slack 没图。几分钟内修好 meta 标签、尺寸或缓存。
vercel.json 或 _redirects 里的 301 部署后变 404 或还显示旧页面。用 curl -I 在 Vercel / Netlify / Cloudflare Pages 上逐一定位:文件位置、规则顺序、文件遮蔽、CDN 缓存、trailing slash、rewrites 与 redirects 混用。
/rss.xml 或 /feed.xml 返回 404:端点没进 build、文件名和 link 标签不一致,或宿主 rewrite 把它挡住了。针对 Astro、Next.js、Netlify、Vercel 的分栈修复。
图片、CSS、字体在生产环境 404,本地却正常。5 个已核实的原因和修复:没进 dist、base 路径、大小写、content hash、CDN 缓存。
线上 URL 打开后 title 闪一下就剩白屏、没有任何 UI 报错。先在打开页面前开好 DevTools,读 Console 第一条红色错误,再对照表格定位是 base path、水合、CSP、build target 还是旧 Service Worker。
/foo 308 跳到 /foo/,又 308 跳回 /foo。框架、宿主、内链三处用同一条规则即可终结跳转链,附 Astro/Vercel/Next.js 配置。