Далее.Перезапись JS не происходит

#next.js

#next.js

Вопрос:

Я надеюсь, что этот вопрос ясен, на данный момент я несколько исчерпал свои умственные ресурсы.

У меня есть некоторые перезаписи Nginx, которые происходят в процессе производства, мне нужно воспроизвести эту функциональность в моем приложении nextjs на интерфейсе.

Итак, мои правила перезаписи выглядят следующим образом

 const rewrites = process.env.NODE_ENV === "development" ?
  [{
    source: '/ovp/userdevices',
    destination: 'https://userdevices.backendservices.dk'
  },

  {
    source: '/ovp/userdevices/:path*',
    destination: 'https://userdevices.backendservices.dk/:path*'
  }
  ] : [];
 

и в моей конфигурации

 async rewrites() {
    console.log("Rewrites called");
    return rewrites;
  },
 

Я получаю журнал консоли, и массив является тем, чем он должен быть. Но мои URL-адреса / ovp/ userdevices никогда не переписываются, и поэтому мы всегда используем localhost:3000/ovp/userdevices.

На данный момент я предполагаю, что перезаписи никогда не происходят, потому что они должны выполняться на стороне сервера, и, возможно, все отображается во внешнем интерфейсе, но я не знаю, как проверить это предположение.

Моя текущая конфигурация выглядит так

 {
  poweredByHeader: false,
  target: 'serverless',
  distDir: 'build',
  basePath: '',
  rewrites: [AsyncFunction: rewrites],
  redirects: [AsyncFunction: redirects],
  pageExtensions: [ 'route.js' ],
  env: {
    SUPPORTED_BROWSERS: 'chrome 84;chrome 83;edge 84;edge 83;firefox 79;firefox 78',
    APP_VERSION: '0.0.1',
    APP_NAME: 'some-app/app-self-service'
  },
  webpack: [Function: webpack]
}
 

Может кто-нибудь указать мне на причину, по которой перезаписи не будут выполняться?

При редактировании: я не собираюсь удалять вопрос, потому что, возможно, кто-то найдет ему применение, но я ошибался, он переписывался, это просто URL, который он собирался, терпел неудачу. Я не понял, почему, потому что я нашел более простой способ решить мою проблему.

Комментарии:

1. /ovp/userdevices Существует ли маршрут в вашей pages/ папке?

2. трудно понять, в чем собственно проблема; можете ли вы более точно описать ожидаемый и наблюдаемый результат? да Next.js перезаписи предназначены для работы в Node.js только запросы, то есть на стороне сервера.

Ответ №1:

Вы не можете использовать имя rewrites дважды. Сделайте next.config.js так:

 module.exports = {
  async rewrites() {
    console.log("Rewrites called");
    return process.env.NODE_ENV === "development"
      ? [
          {
            source: "/ovp/userdevices",
            destination: "https://userdevices.backendservices.dk",
          },

          {
            source: "/ovp/userdevices/:path*",
            destination: "https://userdevices.backendservices.dk/:path*",
          },
        ]
      : [];
  },
};