首页 > 解决方案 > Next.js 在 next.config.js 中动态重定向

问题描述

我想在项目构建后更新重定向路由。所以,我们在 BE Api 上有一个重定向路由。

我想动态地获取它并实施到 next.config.js,这就是我试图做的。

const getUrls = () =>
    new Promise(resolve => {
        setTimeout(() => resolve(fetch("https://api.mocki.io/v1/a0b7f0b0").then(function(response) {
            return response.json();
          }).then(function(data) {
            return data.data;
          }) ), 3000);
    });

    // ExampleResponse = {
    //     "data":[
    //         {
    //             "source":"/test",
    //             "permanent":true,
    //             "destination":"/internet-application"
    //         }
    //     ]
    // }
    
module.exports = {
    poweredByHeader: false,
    async redirects() {
        return getUrls();
      },
}

有没有这样的解决方案。我只想从数据库更新重定向。如果数据库更新可以触发重定向而不停止项目

标签: javascriptreactjsbuildnext.jsconfig

解决方案


您可以在构建时动态生成重定向路径,代码中的问题是您需要await解决getUrls承诺。

module.exports = {
    poweredByHeader: false,
    async redirects() {
        return await getUrls();
    }
}

您也可以简化getUrls为根本不使用setTimeout

但是,如果您想在运行时更新重定向,则必须为此设置自己的自定义服务器


推荐阅读