路由同步
在 iframe 预览中同步路由更改到您的 Drupal 网站。
路由同步是 iframe 预览的一项功能。它捕获 iframe 预览内的路由更改,并与 Drupal 网站同步。
例如:如果您在 iframe 预览中导航到一篇文章节点,路由同步将监听此路由更改并重定向 Drupal 站点到该文章节点。
这很方便,因为它可以保持编辑上下文。
路由同步支持翻译和修订。
路由同步使用 Window.postMessage() API 安全地将路由更改传达给 Drupal 站点。
targetOrigin
从配置的 NEXT_PUBLIC_DRUPAL_BASE_URL
中提取,位于 .env
中。
演示
配置
- 在您的 Drupal 站点上,访问
/admin/config/services/next/settings
。 - 选中 同步路由
- 保存。
接下来,将以下代码添加到 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 }) { // ...}
重启开发服务器。
如果您访问 Drupal 站点上的一个节点,并在 iframe 预览中点击任何链接,您现在应该看到路由更改同步。
跳过路由
如果您想禁用某些路由的同步,比如定义在 Next.js 站点中但在 Drupal 中不存在的路由,您可以在 跳过路由 下指定路由路径。