我有两个项目,
项目 2 有一个中间件来检测 请求是否来自 桌面/移动。
Project 2 页面文件夹如下所示:
_中间件.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
}
];
}
在当前配置下,/卖你的车页面会不断刷新。
还在该线程上解决了这个问题: Next.JS 13 使用 appdir -> 页面不断刷新
简而言之,您必须进行一些更新,只需在根文件夹中运行即可: npm 我下一个@最新react@最新react-dom@最新eslint-config-next@最新~