Как добавить базовый путь ко всем маршрутам, обрабатываемым Next. js? - PullRequest
0 голосов
/ 20 апреля 2020

Я выполняю рефакторинг существующего приложения expressjs, которое использует Jade для пользовательского интерфейса для следующего js приложения. Я использую то же приложение, что и сервер API, а также для внешних приложений. У меня есть все маршруты веб-приложений в "/ ui", которые мне нужно переместить в Next JS.

Внутри приложения Next JS, все <Link /> и Router.push() необходимо добавить /ui как /ui/home, /ui/profile, а также создайте папку ui в папке pages . Есть ли способ перенаправить маршруты, обрабатываемые следующими js на /ui/<route here> автоматически, чтобы я не использовал явно "ui" перед каждым маршрутом и создавал папку ui ?

Ответы [ 2 ]

0 голосов
/ 21 апреля 2020

Вы можете установить basePath для всех маршрутов в Next. js. Однако эта функция экспериментальная . Не рекомендуется использовать в рабочей среде.

next.config. js

module.exports = {
  experimental: {
    basePath: '/ui',
  },
}

Таким образом, ваша структура каталогов будет:

|--pages
|  |--foo
|  |--bar

Использование ссылки:

// will generate /ui/foo
<Link href="foo">
  <a>Foo</a>
</Link>

// will generate /ui/bar
<Link href="bar">
  <a>Bar</a>
</Link>

Если вы решите использовать ее, вы можете заблокировать версию Next. js в package.json, поскольку в обновлениях могут быть критические изменения.

0 голосов
/ 21 апреля 2020

Я не думаю, что возможно добавить путь по умолчанию для Next. js Ссылка. Вы можете заменить все маршруты автоматически, используя команду «sed» в терминале.

Например:

sed -i '.bak' 's/to="\//to="\/ui\//g' *
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...