Decap搭配Netlify时部署预览链接无法正常跳转求助
针对你遇到的Decap CMS在Netlify部署时预览链接跳转到正式站点的问题,给你几个实际可行的排查和修复步骤:
检查Netlify与Decap的Webhook联动
登录Netlify后台,进入你的站点设置,找到「Build & deploy」>「Deploy notifications」,确认是否添加了指向Decap CMS的Webhook(地址格式为你的CMS访问地址/api/netlify-hooks)。如果没有,手动添加一个,触发事件选择「Deploy succeeded」和「Deploy failed」。这个Webhook是Netlify把预览部署的地址回传给Decap的关键,没有它Decap拿不到正确的预览URL。调整配置中的
site_url和display_url
把配置里的site_url改成Netlify分配的默认域名(比如xxx.netlify.app),不要用自定义域名。同时删除或注释掉display_url字段,这个字段会强制CMS显示正式站点地址,可能干扰预览链接的生成逻辑。修改后的配置片段应该是:# display_url: "https://example.com/" # 注释或删除这一行 site_url: "https://xxx.netlify.app/" # 用Netlify默认域名统一
preview_path的格式
检查你配置里的preview_path,确保所有路径都以斜杠开头。比如把Contact Page的preview_path: "contact-us"改成preview_path: "/contact-us",避免路径拼接错误导致预览地址指向正式站点的根路径。确认Netlify的分支部署设置
去Netlify的「Site settings」>「Build & deploy」>「Branch deploys」,确认设置为「Deploy all branches」,或者至少允许Decap生成的草稿分支(一般是draft-*格式)进行部署预览。如果分支被限制,Netlify不会生成预览,Decap自然拿不到预览地址。清除CMS缓存
打开Decap CMS页面后,按Ctrl+Shift+R强制刷新浏览器,或者清除浏览器的缓存和本地存储。有时候旧的配置缓存会导致预览地址没有更新。更新Decap CMS版本
如果你用的是较旧版本的Decap,可能存在Netlify预览联动的bug。尝试更新Decap CMS的依赖包(比如执行npm update decap-cms-app),然后重新部署站点。
内容的提问来源于stack exchange,提问作者leactz

