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

#vue.js #nuxt.js #nuxt-i18n

#vue.js #nuxt.js #nuxt-i18n

Вопрос:

В настоящее время я работаю над интернализацией веб-сайта с использованием Vue.js и фреймворков Nuxt. Я перехожу с URL страницы, являющейся website.com/my-page на website.com/<lang>/my-page .

Для этого, следуя документации, я переместил все свои страницы в _lang папку, предоставив мне следующую архитектуру:

 pages/
│
└───_lang
│     │ 
|     |__ my-page.vue
|
...
  

Это работает точно так, как задумано, за исключением того факта, что <lang> slug теперь является обязательным, что делает доступ к website.com/my-page возврату 404.

Я хотел бы, чтобы этот URL отображал страницу на языке по умолчанию, объявленном в моем приложении.

Единственный способ, который я нашел для достижения этой цели, — создать другой, my-page.vue в корне pages/ , содержащий следующее:

 <script>
import Mypage from '~/pages/_lang/my-page'
export default Mypage
</script>  

Однако это означает создание такого рода псевдонимов для каждой страницы моего веб-сайта, что дает мне:

 pages/
│
│─── my-page.vue
│
└───_lang/
│     │ 
|     |__ my-page.vue
|
...
  

Есть ли какой-либо способ автоматизировать это, поскольку это очень утомительный процесс?

Спасибо,

Примечание: Я безуспешно исследовал extendRoutes.

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

1. Действительно интересно, что вы в итоге сделали. Хотите поделиться? Я сталкиваюсь с точно такими же проблемами, когда хочу сопоставить определенный параметр с моей домашней страницей.

2. В итоге я сделал то, что было предложено @Aldarund, это работает нормально

Ответ №1:

Вы могли бы использовать модуль router-extras-module.

 <router>
    alias:
        - /my-page
</router>
  

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

1. Большое спасибо за ваш ответ! В настоящее время я устраняю проблемы, когда обновление основной версии Nuxt привело к сбою всего моего Stylus css Error: Expected a pseudo-class or pseudo-element. . Я попробую это, как только все будет работать нормально, и отчитаюсь.

2. Я совершенно забыл сообщить об этом, извините. Это сработало отлично!

3. Если API отвечает на pageUrl как часть JSON, как мы можем использовать это для создания пути к странице с данными этого API??