中文

通过 Next.js 草稿模式解锁无缝内容预览。了解如何赋能内容创作者、改善协作,并为全球受众确保内容质量。

Next.js 草稿模式:为全球团队简化内容预览流程

在当今快节奏的数字时代,提供高质量、引人入胜的内容对成功至关重要。对于全球团队而言,这通常涉及跨多个平台管理内容,并确保不同语言和地区的一致性。Next.js 草稿模式提供了一个强大的解决方案,用于简化内容预览工作流程、赋能内容创作者并改善协作。

什么是 Next.js 草稿模式?

Next.js 草稿模式允许您绕过 Next.js 的静态生成或服务器端渲染,并按需渲染页面,使您能够在发布前实时预览内容更改。这在与内容管理系统(CMS)协作时尤其有用,因为内容更新在上线前需要经过审核和批准。

想象一个场景:东京的营销团队正在更新一个针对北美客户的网站主页。借助草稿模式,他们可以立即预览更改,确保内容在发布前是准确、吸引人且符合文化习惯的。这种实时反馈循环显著降低了出错风险,并提高了内容的整体质量。

使用 Next.js 草稿模式的好处

在您的 Next.js 应用程序中实施草稿模式可提供几个关键优势:

如何实现 Next.js 草稿模式

在您的 Next.js 应用程序中实现草稿模式涉及几个关键步骤:

1. 配置您的 CMS

第一步是配置您的 CMS 以支持草稿模式。大多数现代无头 CMS 平台,如 Contentful、Sanity 和 Strapi,都内置了对草稿模式的支持。请参阅您的 CMS 文档以获取有关如何启用的具体说明。

例如,如果您正在使用 Contentful,您将需要为您的预览环境创建一个单独的 API 密钥。此 API 密钥将允许您从 Contentful 获取草稿内容,而不会影响您的线上环境。

2. 创建一个用于启用草稿模式的 API 路由

接下来,您需要在您的 Next.js 应用程序中创建一个 API 路由来启用草稿模式。该路由通常会从您的 CMS 接收一个秘密令牌,以确保只有授权用户才能进入草稿模式。

以下是一个启用草稿模式的 API 路由示例:


// pages/api/draft.js

import { enablePreview } from '../../utils/draft'

export default async function handler(req, res) {
  // 检查密钥和 slug
  // 此密钥应该只有此 API 路由和 CMS 知道。
  if (req.query.secret !== process.env.CONTENTFUL_PREVIEW_SECRET) {
    return res.status(401).json({ message: 'Invalid token' })
  }

  // 通过设置 cookie 启用草稿模式
  res.setPreviewData({})

  // 启用草稿模式后重定向到主页
  res.redirect('/')
  res.end()
}

此代码片段展示了一个基本的 API 端点。关键是,`CONTENTFUL_PREVIEW_SECRET` 环境变量会与请求的查询参数进行比较。如果匹配,`res.setPreviewData({})` 会通过 cookie 激活草稿模式。最后,用户被重定向到主页。

3. 获取草稿内容

现在您已经启用了草稿模式,您需要更新您的数据获取逻辑,以便在草稿模式激活时获取草稿内容。您可以使用 `getStaticProps` 或 `getServerSideProps` 提供的 `preview` 属性来确定草稿模式是否已启用。

以下是在 `getStaticProps` 中获取草稿内容的示例:


export async function getStaticProps({ preview = false }) {
  const post = await getPostBySlug(slug, preview)

  return {
    props: {
      post,
      preview,
    },
  }
}

在此示例中,如果 `preview` 属性设置为 `true`,`getPostBySlug` 函数会获取草稿内容。当草稿模式启用时,`preview` 属性会自动传递给 `getStaticProps`。

在 `getPostBySlug` 内部,您通常需要修改您的 CMS 查询以包含草稿条目。对于 Contentful,这意味着在您的 API 请求中包含 `preview: true`。

4. 显示草稿内容

最后,您需要更新您的组件,以便在草稿模式激活时显示草稿内容。您可以使用 `preview` 属性根据草稿模式是否启用有条件地渲染不同的内容。

以下是在 React 组件中显示草稿内容的示例:


function Post({ post, preview }) {
  return (
    

{post.title}

{preview && (

草稿模式已激活

)}

{post.content}

) }

此代码片段检查 `preview` 属性。如果为 true,则会显示一条消息,指示草稿模式已激活。这使得内容创作者可以清楚地区分草稿内容和已发布内容。

示例:为全球电子商务平台管理内容

考虑一个在全球多个国家销售产品的电子商务平台。该平台需要以不同语言管理产品描述、促销横幅和营销活动。

借助 Next.js 草稿模式,每个地区的内容创作者都可以在内容上线前进行预览,确保内容准确、符合文化习惯并针对其目标受众进行了优化。例如:

通过让区域团队在发布前预览其内容,草稿模式有助于确保平台为全球客户提供一致且高质量的体验。

使用 Next.js 草稿模式的最佳实践

为了充分利用 Next.js 草稿模式,请考虑以下最佳实践:

常见挑战与解决方案

虽然 Next.js 草稿模式提供了许多好处,但在实施过程中您也可能遇到一些常见的挑战:

Next.js 草稿模式的替代方案

虽然 Next.js 草稿模式是一个强大的工具,但您可能还想考虑一些其他的内容预览方法:

结论

Next.js 草稿模式是为全球团队简化内容预览工作流程、赋能内容创作者并改善协作的宝贵工具。通过实施草稿模式,您可以确保您的内容在发布前是准确、引人入胜且符合文化习惯的,最终带来更好的用户体验和业务成果。通过仔细考虑最佳实践并解决常见挑战,您可以释放 Next.js 草稿模式的全部潜力,并改变您的内容创作流程。

请记住,始终要优先考虑安全性、性能和清晰的内容审批工作流程,以确保为您的全球团队提供一个顺畅高效的内容管理过程。