Nuxt generate поддерживает работу моих динамических маршрутов - PullRequest
0 голосов
/ 14 ноября 2018

Я использую nuxt для статического веб-приложения, используя "mode: spa" и "nuxt generate".

В документах говорится, что динамические маршруты не работают с этим, но мое приложение (/ dist) по-прежнему работает на статическом сервере после генерации, даже если маршруты не генерируются. Я не могу понять, почему.

Перед генерацией мои маршруты выглядят так:

export function createRouter () { return new Router({ mode: 'history', base: '/', routes: [ { path: "/", component: _36d3a217, name: "index" }, { path: "/:focus", component: _fbe76838, children: [ { path: "", component: _6d415767, name: "focus" }, { path: ":view", component: _19cdee48, name: "focus-view" } ] } ], fallback: false }) }

Теперь сгенерированный / dist не создает каталог / focus, как ожидалось ... Но в моем приложении я использую параметры URL-адреса маршрута для запроса API, и он все еще работает.

т. Е. Маршрут, как показано ниже, компонент будет использовать "thisFocus" и "thisView" в качестве параметров в API:

/thisFocus/thisView

Поскольку динамические маршруты не существуют в / dist, я бы подумал, что это больше не будет работать. Так как же приложение все еще успешно использует эти параметры URL без существующих маршрутов?

Редактировать: еще один более простой способ спросить, может быть: почему я все еще могу получить доступ к /: focus /: просмотреть route.params, даже если маршруты не существуют?

1 Ответ

0 голосов
/ 25 июня 2019

Если вы используете nuxt generate, вам обычно требуется статически сгенерированная страница. Это означает наличие одного HTML-файла на маршрут, который содержит фактический HTML-код, предоставленный сервером.

Вы хотите этого, потому что это даст вам «лучшее из обоих миров», хороший SEO, более быстрый TTI и так далее, но без постоянной работы сервера Node.js. ( Подробнее читайте )

Если вам нужен традиционный SPA, у вас обычно есть только один index.html файл, почти без HTML, но с включенным Javascript.

Исходный код типичного SPA image

Динамические маршруты

Когда вы «предварительно визуализируете» (=== статически генерируете) свою страницу, Nuxt нужна информация о том, какие маршруты он должен отображать. Для маршрутов без параметров это просто (например, about.vue или posts/index.vue). Как только появляются динамические параметры, Nuxt не может их «угадать».

Так что да, динамические маршруты "игнорируются", потому что Nuxt не знает, что с ними делать, за исключением того, что вы сообщаете Nuxt, какие маршруты следует предварительно визуализировать.

Эти маршруты будут сгенерированы. Это не означает , что вы не можете получить доступ к динамическим маршрутам, которые вы не предоставили Nuxt. Вы по-прежнему можете получить к ним доступ (например: сообщение, которое не существует ), и запросы будут проанализированы (в зависимости от конфигурации вашего сервера и от того, включен ли generate.fallback или нет) , но Вы теряете выгоду SEO и видите спиннер, поскольку резервный файл эквивалентен index.html от вашего традиционного SPA.

Источник: Ответил на github manniL, который является основным членом nuxt

...