404 для всех маршрутов с включенной локалью - NextJS с next-i18next
Привет, я слежу за документами отсюда: github docs
, но все URL-адреса с языковыми стандартами возвращают 404. Например:
- локальный: 3000 / де / вторая страница = 404
- локальный: 3000 / en /second-page = 404
- локальный: 3000 / де = 404
локальный: 3000 / en = 404
- то же самое для локали по умолчанию.
localhost: 3000 / вторая страница = 200
- локальный: 3000 = 200
Я думаю, это потому, что нет pages/de/second-page.js
, например, но какова тогда цель этой библиотеки, если она не решает эту проблему.
Я много искал и знаю о localSubpaths
, но кажется, что это не работает:
module.exports = new NextI18Next({
otherLanguages: ['fr'],
//localeSubpaths: localeSubpathVariations[localeSubpaths],
localeSubpaths: {
de: 'de',
en: 'en',
}
})
Это не работает в моем приложении, но не работает и в их образце: их образец
0 ответов
Вы проверили эти два шага?
После создания и экспорта вашего экземпляра NextI18Next вам необходимо предпринять следующие шаги, чтобы все заработало:
Создайте файл _app.js внутри каталога страниц и оберните его компонентом более высокого порядка NextI18Next.appWithTranslation (HOC). Вы можете увидеть этот подход в примерах /simple/pages/_app.js. Компонент вашего приложения должен либо расширять приложение, если это компонент класса, либо определять getInitialProps, если это функциональный компонент (объяснение здесь).
Создайте файл next.config.js внутри корневого каталога, если вы хотите использовать подкаталоги локали. Вы можете увидеть этот подход в примерах /simple/next.config.js (требуется Next.js 9.5+).
const { nextI18NextRewrites } = require('next-i18next/rewrites')
const localeSubpaths = {
de: 'de',
en: 'en',
};
module.exports = {
rewrites: async () => nextI18NextRewrites(localeSubpaths),
publicRuntimeConfig: {
localeSubpaths,
},
}