路由同步

在 iframe 预览中同步路由更改到您的 Drupal 网站。


路由同步是 iframe 预览的一项功能。它捕获 iframe 预览内的路由更改,并与 Drupal 网站同步。

例如:如果您在 iframe 预览中导航到一篇文章节点,路由同步将监听此路由更改并重定向 Drupal 站点到该文章节点。

这很方便,因为它可以保持编辑上下文。

路由同步支持翻译和修订。

路由同步使用 Window.postMessage() API 安全地将路由更改传达给 Drupal 站点。

targetOrigin 从配置的 NEXT_PUBLIC_DRUPAL_BASE_URL 中提取,位于 .env 中。

演示

配置

  1. 在您的 Drupal 站点上,访问 /admin/config/services/next/settings
  2. 选中 同步路由
  3. 保存。

接下来,将以下代码添加到 Next.js 站点上的 _app.js 文件中。

import Router from "next/router"
import { syncDrupalPreviewRoutes } from "next-drupal"
Router.events.on("routeChangeStart", function (path) {
syncDrupalPreviewRoutes(path)
})
export default function App({ Component, pageProps }) {
// ...
}
Route syncing
开启路由同步

重启开发服务器。

如果您访问 Drupal 站点上的一个节点,并在 iframe 预览中点击任何链接,您现在应该看到路由更改同步。

跳过路由

如果您想禁用某些路由的同步,比如定义在 Next.js 站点中但在 Drupal 中不存在的路由,您可以在 跳过路由 下指定路由路径。

Route syncing
跳过路由