Вью-роутер не перенаправляет - PullRequest
1 голос
/ 09 мая 2019

Несмотря на многочисленные сообщения на эту тему, я не могу найти, что происходит не так.Я следовал этому примеру .

Вот мой VueRouter экземпляр.

const router = new VueRouter({
  mode: "history",
  routes: [
    {
      path: "/",
      component: require("./components/producer-table.vue").default
    },
    {
      path: "/producer/:producerId",
      component: require("./components/variable-table.vue").default,
      props: true
    },
    { path: "*", redirect: "/" }
  ]
});

Если я программно направляю неправильный URL (this.$router.push({path: "/wrong});), то яперенаправлено на http://localhost/.

Кажется, все работает нормально, за исключением того, что, когда я устанавливаю неправильный адрес в строке URL Chrome, я получаю следующее сообщение:

Невозможно получить / неправильно

Я бы ожидал, что http://localhost/wrong будет перенаправлен на http://localhost/. Я совершенно новый пользователь, использующий маршрутизатор vue, и я должен что-то пропустить.Есть идеи?

1 Ответ

3 голосов
/ 09 мая 2019

Это потому, что ваш веб-сервер не знает, GET /wrong должен быть перенаправлен в файл index.html; с этого момента vue-router может вступить во владение.

Некоторые примеры того, как перенаправить различные веб-серверы;

Apache: htaccess переписать все в index.html

nginx: Переписать все запросы к index.php с помощью nginx

webpack-dev-server:

/// in your webpack.config
devServer: {
  historyApiFallback: {
    index: '/'
  }
}
...