首页 > 解决方案 > 根据查询字符串在通用和水疗模式之间切换?

问题描述

我正在构建一个设置为通用模式的 Nuxt.js 应用程序,并通过nuxt generate. 它通过连接到 CMS 的 GraphQL API 提取数据,并且一切正常。当内容在 CMS 中更新时,部署脚本会运行 nuxt generate,并且更新会在几秒钟内显示在网站上。

我的问题是 CMS(Craft CMS)有一个实时预览模式,在编辑内容时可以访问。预览窗口将令牌传递给应用程序,然后应用程序可以根据令牌值修改其查询。这似乎适用于水疗模式,但不适用于通用模式。在通用模式下,生成静态文件时,查询已经在服务器上运行。

我已经尝试根据此处的示例尝试使用 serverMiddleware 。我分叉了代码沙箱,并尝试了 serverMiddleware 函数中的各种逻辑,似乎没有任何结果。

标签: javascriptvue.jsnuxt.js

解决方案


Nuxt 2.13有一个可以通过插件设置的预览模式:

export default async function ({ query, enablePreview }) => {
  if (query.preview) {
    enablePreview()
  }
}

设置 enablePreview() 后,页面将查询实时 API,而不是使用生成的页面。


推荐阅读