Я пытаюсь заставить nuxt генерировать локализованные динамические c маршруты. Я использовал nuxt-i18n для перевода каждого маршрута.
Вот моя конфигурация nuxt-i18n:
['nuxt-i18n', {
lazy: true,
locales: [
{
name: 'French',
code: 'fr',
iso: 'fr-ch',
file: 'fr.json'
},
{
name: 'German',
code: 'de',
iso: 'de-ch',
file: 'de.json'
},
{
name: 'Italian',
code: 'it',
iso: 'it-ch',
file: 'it.json'
},
],
langDir: 'lang/',
defaultLocale: 'fr',
parsePages: false,
pages: {
'advice/_uid': {
fr: '/conseil/:uid',
de: '/ratschlag/:uid',
it: '/consiglio/:uid',
},
}
}]
Как написано в документации:
Dynami c маршруты игнорируются командой generate (yarn generate). Nuxt не знает, какими будут эти маршруты, поэтому не может их сгенерировать.
Поэтому я попытался адаптировать их пример и использовал Api моей безголовой CMS для реконструкции всех маршрутов. но, к сожалению, nuxt по какой-то причине их не генерирует. Я попытался использовать файловую структуру (это /advice/_uid.vue
) вместо локализованного маршрута, надеясь, что nuxt-i18n позаботится об этом за меня, но и с этой стороны не повезло.
Вот мой nuxt. config. js:
import Prismic from 'prismic-javascript'
const prismicEndpoint = 'https://some-repository.cdn.prismic.io/api/v2'
const advices = () =>
Prismic.getApi(prismicEndpoint)
.then(api =>
api.query(Prismic.Predicates.at('document.type', 'advice'), {
pageSize: 100,
})
)
.then(res => {
return [
...res.results.map(advice => `/conseil/${advice.uid}`),
]
})
// Some more code...
export default {
// Some more code...
generate: {
fallback: '404.html',
advices
}
}
Когда я запускаю npm run generate
, ошибок нет, хотя он не генерирует ни один из этих маршрутов. Раньше он работал довольно хорошо, прежде чем я использовал nuxt-i18n для локализации моих маршрутов.
Есть ли способ заставить nuxt или nuxt-i18n генерировать локализованные dymami c маршруты?
Спасибо за ваш помогите!