【问题标题】:NextJS redirects not redirecting urls after define in next.config.js fileNextJS 在 next.config.js 文件中定义后重定向不重定向 url
【发布时间】:2020-12-09 12:59:49
【问题描述】:

我尝试在我的 NextJS 应用程序中定义重定向。 但它不起作用。

这就是我在 next.config.js 文件中尝试这样做的方式:

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

【问题讨论】:

  • 你找到让它工作的方法了吗?
  • 看起来这是与下一个图像和下一个优化图像的错误/冲突。我在这里提出了一个问题:github.com/twopluszero/next-images/issues/69
  • 正如@Matt 下面所指出的,重定向似乎不会热重载,因此您必须手动反弹您的 nextjs 服务器。

标签: node.js reactjs next.js module.exports


【解决方案1】:

要让重定向和重写在 NextJs 中正常工作,您还需要确保一件事:

如果您使用的是trailingSlash: true,那么您的源路径必须以斜杠结尾。

{
    source: '/old/:id/',  // Notice the slash at the end
    destination: '/new/:id',
},

任何其他干扰路由的插件或配置也需要考虑在内。

【讨论】:

  • 而且,在我的例子中,反之亦然:你应该确保你的 URL 不以斜杠结尾(如果你没有配置它以这种方式处理它)
【解决方案2】:

您可以像这样将所有导入以及 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
);

【讨论】:

    【解决方案3】:

    您使用的是哪个 NextJS 版本?从 9.5 开始支持重定向

    【讨论】:

      【解决方案4】:

      对于遇到此问题的任何人,请尝试重新启动服务器。配置文件将被重新加载。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-09-15
        • 2021-04-08
        • 2021-10-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多