使用 Puck Next.js recipe 部署上线前需要检查哪些配置?
使用 Puck Next.js recipe 部署上线前需要检查哪些配置【免费下载链接】puckThe visual editor for React.项目地址: https://gitcode.com/GitHub_Trending/puc/puck如果你准备把 Puck 的 Next.js recipe仓库中的recipes/next目录一个基于 Next.js App Router 的 Puck 编辑器 渲染示例应用从本地开发环境带到生产环境recipe 的 README 在 Before deploying to production 一节明确列出了 4 项必须先处理的事项编辑器和 API 默认完全公开、组件配置还是示例内容、数据存储是本地 JSON 文件、公开页面默认静态渲染。这篇文章按这 4 项逐一说明在哪个文件检查、判断依据是什么、以及 README 对每项给出的要求。部署前先确认本地流程跑通上线前先确认基线流程是按你预期的方式工作的部署后的检查才有参照物。在 recipe 目录下启动开发服务器npm run dev然后访问http://localhost:3000查看首页http://localhost:3000/edit进入 Puck 编辑器编辑该页。README 描述了这套流程的实现方式核对行为时可以直接对照代码proxy.ts对 GET 请求把以/edit结尾的路由 rewrite 到/puck/[...puckPath]编辑器路由同时把直接访问/puck前缀的请求重定向回/。app/puck/[...puckPath]/client.tsx点击Publish时onPublish把{ data, path }POST 到/puck/api。app/puck/api/route.tsPOST 处理器把页面 JSON 写入database.json并调用revalidatePath(payload.path)清除对应页面的 Next.js 缓存成功后返回{ status: ok }。app/[...puckPath]/page.tsxcatch-all 路由读取同一份数据用Render渲染已发布的页面。验证方式在编辑器中发布后/puck/api返回{ status: ok }随后访问对应的/your/path应能直接渲染发布后的页面。README 也说明可以访问任意/your/path/edit创建并发布新路径的页面发布后/your/path即渲染该页。检查一保护 /edit 路由和 /puck/api 端点README 的第一条要求Protect the editor and API。/edit路由和/puck/api端点默认是公开的public by default需要你自己加上认证和授权authentication and authorization确保只有可信用户可以编辑或发布页面。代码中的依据app/puck/[...puckPath]/page.tsx的文件注释明确写着 NB this route is public, and you will need to add authentication且该路由声明了export const dynamic force-dynamicapp/puck/api/route.ts的POST处理器对请求不做任何身份校验收到数据就直接写文件。recipe 本身没有附带认证实现README 也只要求加上认证和授权具体方案由你按自己的部署环境实现这是上线前必须补上的一项否则任何访问者都能改写你的页面数据。检查二把示例组件替换成你自己的组件库README 的第二条要求Add your component library。当前puck.config.tsx里只有一个示例组件HeadingBlock单一title文本字段、render输出一个带 64px padding 的h1export const config: ConfigProps { components: { HeadingBlock: { fields: { title: { type: text }, }, defaultProps: { title: Heading, }, render: ({ title }) ( div style{{ padding: 64 }} h1{title}/h1 /div ), }, }, };README 要求用你的用户实际需要的组件和字段替换这个示例HeadingBlock。这份 config 会被编辑器app/puck/[...puckPath]/client.tsx中的Puck config{config}和公开页面渲染通过lib/get-page.ts加载数据后经Render使用共用替换时要保证组件、字段定义和你的渲染逻辑一致。检查三把 database.json 换成真实数据库README 的第三条要求Use a real database并给出了原因本地文件在多服务器实例或 serverless 部署下不可靠Local files are not reliable across server instances or serverless deployments。当前 recipe 有两个地方直接读写项目根目录的database.jsonlib/get-page.tsgetPage用fs.readFileSync读取database.json并按路径取页面数据文件注释就是 Replace with call to your databaseapp/puck/api/route.tsPOST处理器用fs.readFileSync/fs.writeFileSync读写同一个文件。替换时改动范围就是这两处getPage改为调用你的数据库读取逻辑API 处理器改为写入你的数据库但保留写入成功后的revalidatePath(payload.path)调用这是发布后让公开页面缓存失效、拿到新内容的机制。检查四选择公开页面的渲染策略README 的第四条要求Choose a rendering strategy。app/[...puckPath]/page.tsx末尾声明了// Force Next.js to produce static pages: https://nextjs.org/docs/app/api-reference/file-conventions/route-segment-config#dynamic // Delete this if you need dynamic rendering, such as access to headers or cookies export const dynamic force-static;文件头注释解释了它的作用所有由该路由产出的页面会按增量静态站点生成incremental static site generation方式静态渲染首次访问后缓存为静态文件发布页面时通过 API 路由清除缓存。README 的要求是如果页面需要请求时的数据如 headers、cookies、用户会话删掉force-static这一行。注意区分编辑器路由app/puck/[...puckPath]/page.tsx声明的是export const dynamic force-dynamic这是有意为之——该路由注释说明这种 magic catch-all 方式让公开页面保持静态渲染而/puck编辑器路由保持动态。这一项不需要改动只需确认你清楚它和公开页面策略的差别。构建、启动与最终验证package.json中提供了构建与启动脚本npm run build npm start对应next build和next start。next.config.js只开启了reactStrictMode: true没有需要额外修改的项。启动后按部署前的流程再走一遍即可核对上线状态访问/edit或任意/your/path/edit——确认已被你实现的认证保护未授权访问无法进入编辑器或调用/puck/api发布一个页面——API 返回{ status: ok }且数据写入的是你的数据库而不是database.json访问对应的/your/path——渲染的是最新发布内容验证缓存失效链路正常工作。README 给出的 4 项要求到这里已全部覆盖。需要明确的是认证方案和生产数据库都不在 recipe 内README 只指出必须替换/添加而没有给出实现这两项需要在你的部署环境中自行完成并通过上面的验证确认。【免费下载链接】puckThe visual editor for React.项目地址: https://gitcode.com/GitHub_Trending/puc/puck创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

Plate 节点模型与亲和性(Node Model  Affinity)规范:从文档修复到运行时落地的完整实践

Plate 节点模型与亲和性(Node Model Affinity)规范:从文档修复到运行时落地的完整实践

Plate 节点模型与亲和性(Node Model & Affinity)规范:从文档修复到运行时落地的完整实践 【免费下载链接】plate Rich-text editor with AI and shadcn/ui 项目地址: https://gitcode.com/GitHub_Trending/pl/plate 导读 本文基于…

2026/9/15 11:16:01 阅读更多 →
Midday 周度洞察为什么没有显示 runway 耗尽日期?怎么检查触发条件?

Midday 周度洞察为什么没有显示 runway 耗尽日期?怎么检查触发条件?

Midday 周度洞察为什么没有显示 runway 耗尽日期?怎么检查触发条件? 【免费下载链接】midday Invoicing, Time tracking, File reconciliation, Storage, Financial Overview & your own Assistant made for Freelancers 项目地址: https://gitcod…

2026/9/15 11:16:01 阅读更多 →
git-bug bug label rm 命令详解:从 bug 中移除标签的完整指南

git-bug bug label rm 命令详解:从 bug 中移除标签的完整指南

git-bug bug label rm 命令详解:从 bug 中移除标签的完整指南 【免费下载链接】git-bug Distributed, offline-first bug tracker embedded in git 项目地址: https://gitcode.com/GitHub_Trending/gi/git-bug 导读 git-bug bug label rm 是 git-bug&#x…

2026/9/15 11:16:01 阅读更多 →

最新新闻

【关注可白嫖源码】--课程设计--毕业设计-- 房屋租赁管理系统project95339(案件分析)

【关注可白嫖源码】--课程设计--毕业设计-- 房屋租赁管理系统project95339(案件分析)

本文仅展示核心实现逻辑与部分代码片段,完整项目源码、配套文档、数据库脚本内容较多,篇幅有限无法全部放出。 有需要完整资源的同学,可以在评论区留言【资料或领源码】,我会一 一回复站内私信,发送完整文件 摘 要 传…

2026/9/15 11:56:52 阅读更多 →
无后端微信小程序实战:王者荣耀重复名与战力查询源码拆解

无后端微信小程序实战:王者荣耀重复名与战力查询源码拆解

简介:这份微信小程序源码面向王者荣耀玩家与小程序开发者,围绕特殊昵称生成与跨区战力查询两个场景,提供重复名批量生成、多种空白名(贵族居中、QQ/微信专属)以及微信区/QQ区最低战力查询功能,解决手动改名…

2026/9/15 11:56:52 阅读更多 →
【关注可白嫖源码】--课程设计--毕业设计-- springboot在线花店销售系统[编号:project95193](案件分析)

【关注可白嫖源码】--课程设计--毕业设计-- springboot在线花店销售系统[编号:project95193](案件分析)

本文仅展示核心实现逻辑与部分代码片段,完整项目源码、配套文档、数据库脚本内容较多,篇幅有限无法全部放出。 有需要完整资源的同学,可以在评论区留言【资料或领源码】,我会一 一回复站内私信,发送完整文件 摘 要 随…

2026/9/15 11:56:52 阅读更多 →
Flutter双端开发实战:从工程架构到App Store上架全流程

Flutter双端开发实战:从工程架构到App Store上架全流程

1. 项目概述:为什么“一套代码跑双端”不是口号,而是可落地的工程现实 Flutter 双端开发实战,这个标题里藏着三个关键信息点: Flutter 是技术选型,双端是目标形态,实战是交付标准 。它不是教你怎么写个 …

2026/9/15 11:56:52 阅读更多 →
深入解析 Plate 表格多单元格选择崩溃:Slate 节点共享引用的根因与修复

深入解析 Plate 表格多单元格选择崩溃:Slate 节点共享引用的根因与修复

深入解析 Plate 表格多单元格选择崩溃:Slate 节点共享引用的根因与修复 【免费下载链接】plate Rich-text editor with AI and shadcn/ui 项目地址: https://gitcode.com/GitHub_Trending/pl/plate 导读 本文围绕 Plate 仓库中一份真实的缺陷修复计划展开&a…

2026/9/15 11:56:52 阅读更多 →
如何用 Prefect Managed 基础设施运行 flow 而不自建 worker

如何用 Prefect Managed 基础设施运行 flow 而不自建 worker

如何用 Prefect Managed 基础设施运行 flow 而不自建 worker 【免费下载链接】prefect Prefect is a workflow orchestration framework for building resilient data pipelines in Python. 项目地址: https://gitcode.com/GitHub_Trending/pr/prefect 如果你的 flow 需…

2026/9/15 11:55:52 阅读更多 →

日新闻

Java高级技术:从语言特性到性能优化全解析

Java高级技术:从语言特性到性能优化全解析

1. Java高级技术概述Java作为一门成熟的编程语言,经过二十多年的发展已经形成了完整的生态系统。在企业级应用开发、大数据处理、移动开发等领域,Java都占据着重要地位。掌握Java高级技术不仅意味着能够编写更高效的代码,更代表着开发者能够解…

2026/9/15 0:00:23 阅读更多 →
C#与Halcon结合的工业视觉处理实战指南

C#与Halcon结合的工业视觉处理实战指南

1. 项目概述:C#与Halcon强强联合的视觉处理利器这个基于C#和Halcon的视觉处理Demo项目,是我在工业质检领域摸爬滚打多年后提炼出的实战精华。它完美融合了C#的界面开发优势与Halcon强大的图像处理能力,就像给视觉工程师配上了一把瑞士军刀。项…

2026/9/15 0:00:23 阅读更多 →
32路工业串口服务器的硬核选型指南:确定性、鲁棒性与协议下沉

32路工业串口服务器的硬核选型指南:确定性、鲁棒性与协议下沉

1. 为什么“32路复合型”不是营销话术,而是工业现场真实痛点的硬解你有没有遇到过这样的场景:在某大型能源站的PLC机柜里,十几台不同年代、不同品牌的温控仪、电表、气体分析仪、阀门控制器,全靠RS-485总线挂在一根线上&#xff0…

2026/9/15 0:00:23 阅读更多 →

周新闻

AI SDK Harness 依赖更新指南:掌握 harness 包 SDK 依赖的升级、桥接同步与一致性校验

AI SDK Harness 依赖更新指南:掌握 harness 包 SDK 依赖的升级、桥接同步与一致性校验

AI SDK Harness 依赖更新指南:掌握 harness 包 SDK 依赖的升级、桥接同步与一致性校验 【免费下载链接】ai The AI Toolkit for TypeScript. From the creators of Next.js, the AI SDK is a free open-source library for building AI-powered applications and ag…

2026/9/14 5:45:49 阅读更多 →
Refine v5 Ant Design NumberField 组件实战:基于 Intl 的本地化数字格式化

Refine v5 Ant Design NumberField 组件实战:基于 Intl 的本地化数字格式化

Refine v5 Ant Design NumberField 组件实战:基于 Intl 的本地化数字格式化 【免费下载链接】refine A React Framework for building internal tools, admin panels, dashboards & B2B apps with unmatched flexibility. 项目地址: https://gitcode.com/GitH…

2026/9/15 1:32:25 阅读更多 →
Flutter应用改名全指南:从Android到iOS的配置与工具实践

Flutter应用改名全指南:从Android到iOS的配置与工具实践

刚接一个外包项目时,甲方要求把工程里临时用的应用名改成正式产品名。我本来觉得“改名”这种小事,打开配置文件改一行不就完了?结果真动手才发现,Flutter项目里“应用名称”根本不是一处配置,而是一整套散落在 Androi…

2026/9/15 1:32:21 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/14 17:35:10 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/14 16:59:29 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/14 5:45:14 阅读更多 →