#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*",
},
]
: [];
},
};