问题描述
我尝试在NextJS应用程序中定义重定向。 但它不起作用。
const withImages = require('next-images')
const withPlugins = require("next-compose-plugins");
const optimizedImages = require("next-optimized-images");
module.exports = withPlugins(
[
[optimizedImages,{
inlineImageLimit: 512
}]
],{
async redirects() {
return [
{
source: "/sales/guest/form",destination: "/",permanent: true
}
]
},env:{
testEnvVar: 'vallll'
}
}
);
这是有关操作方法的文档: https://nextjs.org/docs/api-reference/next.config.js/redirects
解决方法
您可以像这样将所有导入的内容以及 const
定义添加到第一个 array
参数
const withPlugins = require('next-compose-plugins');
const css = require('@zeit/next-css');
const less = require('@zeit/next-less');
const nextConfig = {
target: 'serverless',webpack(config,{ isServer,webpack }) {
// al your config
return config;
},};
const redirects = {
async redirects() {
return [
{
source: '/old/blogs/:slug*',destination: 'whatever your new rewrite url',permanent: true,},];
},};
module.exports = withPlugins(
[
[css],[less],[redirects],// you can directly drop your redirect rules here
],nextConfig
);
您正在使用哪个NextJS版本?从9.5开始支持重定向
,为了使重定向和重写在 NextJs 中正常工作,您还需要确保一件事:
如果您使用的是 trailingSlash: true
,那么您的源路径必须以斜杠结尾。
{
source: '/old/:id/',// Notice the slash at the end
destination: '/new/:id',
任何其他干扰路由的插件或配置也需要考虑在内。
,对于遇到此问题的任何人,请尝试重新启动服务器。然后将重新加载配置文件。