NextJS Rewrites持续刷新

问题描述 投票:0回答:1

我有两个项目,

项目 2 有一个中间件来检测 请求是否来自 桌面/移动

Project 2 页面文件夹如下所示:

  • 页数
    • _视口
      • 桌面
        • au
          • 卖掉你的车
      • 手机
        • au
          • 卖掉你的车

_中间件.tsx

function getViewport(userAgent: UserAgent | null | undefined) {
  if (!userAgent?.ua) return;
  const isMobile = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(userAgent.ua);
  return isMobile ? "mobile" : "desktop";
}

/** @type {import("next/server").NextMiddleware} */

export function middleware(req: NextRequest) {
  const url = req.nextUrl.clone();

  // Prevent internals from being accessed canonically
  // (i.e. if you try to go to example.com/_viewport it should give a 404)
  if (url.pathname.startsWith(`/_viewport`)) {
    return new Response(null, { status: 404 });
  }

  const viewport = getViewport(req.ua);

  url.pathname = `_viewport/${viewport}${url.pathname}`;

  return NextResponse.rewrite(url);
}

我想以这样的方式设置重写,使其支持 /sell-your-car 路线之后的所有路线。

例如

除此之外,所有路由都应重定向到项目 1(React)

next.config.js

async rewrites() {
    return [
      {
        source: "/:path*",
        destination: "/:path*"
      },
      {
        source: "/:path*",
        destination: "http://localhost:3001/:path*" // Rewrite non-migrated routes to Create React App
      }
    ];
  }

在当前配置下,/卖你的车页面会不断刷新。

javascript next.js url-rewriting url-routing
1个回答
0
投票

还在该线程上解决了这个问题: Next.JS 13 使用 appdir -> 页面不断刷新

简而言之,您必须进行一些更新,只需在根文件夹中运行即可: npm 我下一个@最新react@最新react-dom@最新eslint-config-next@最新~

  • 祝一切顺利!
© www.soinside.com 2019 - 2024. All rights reserved.