Можно ли во время сборки создать в NextJS большой массив перезаписей?

У меня много ссылок на свой сайт, который я перехожу на NextJS, который начинается с заглавных букв, например:

https://svcc.mobi/Presenter/2019/llewellyn-falco-3133 (обратите внимание на заглавную букву P в Presenter)

Я хочу, чтобы их все переписали на

https://svcc.mobi/presenter/2019/llewellyn-falco-3133

Я могу обновить свой, как показано ниже, чтобы позаботиться об этом для одной записи, но я хочу иметь несколько тысяч таких записей в моем next.config.jsфайл. Могу ли я как-то программно загрузить этот массив во время сборки? (вроде как getStaticPaths).

      module.exports = {
  async rewrites() {
    return [
      {
        source: '/(P|p)resenter/2019/llewellyn-falco-3133',
        destination: '/presenter/2019/llewellyn-falco-3133',
      },
      {
        source: '/(a|A)(b|B)(o|O)(u|U)(t|T)',
        destination: '/about',
      },
      {
        source: '/(s|S)ession',
        destination: '/session',
      },
      {
        source: '/(p|P)resenter',
        destination: '/presenter',
      },
    ];
  },
  images: {
    domains: ['ddrt7tzfkdwdf.cloudfront.net', 'www.siliconvalley-codecamp.com'],
  },

1 ответ

В rewrites вход в next.config.js принимает asyncфункция, которая должна возвращать массив объектов в ожидаемом формате. Это означает, что вы можете добавить к нему любую динамическую логику и даже выполнять асинхронные операции, такие как выборка данных.

      module.exports = {
    async rewrites() {
        // Add logic to generate dynamic rewrites array:
        // Fetch data from external source, call functions, read files, etc

        return dynamicRewritesArray;
    }
};
Другие вопросы по тегам