Vue Routing vue добавление / # / к URL-адресу и, если очистить, по умолчанию все URL-адреса равны '/' - PullRequest
0 голосов
/ 22 сентября 2019

Привет всем, у меня есть приложение Vue CLI.

в режиме разработки, мой URL-адрес по умолчанию:

http://localhost:8080/#/

, если я пытаюсь сделать http://localhost:8080/signin, он перенаправляет обратно на http://localhost:8080/signin#/, но отображает мое '/' представление.

мой файл роутера выглядит так:

import Vue from 'vue'
import Router from 'vue-router'
import Home from '@/components/Home'
import Signin from '@/components/Signin'

Vue.use(Router)

export default new Router({
  routes: [
    {
      path: '/',
      name: 'Home',
      component: Home
    },
    {
      path: '/signin',
      name: 'signin',
      component: Signin
    }
  ]
})

Понятия не имею, почему это происходит!Любой совет или помощь здесь будет здорово!

1 Ответ

1 голос
/ 22 сентября 2019

Значением по умолчанию для vue-router является режим 'hash'.Он добавляет хеш к вашему URL, чтобы браузер не пытался загрузить что-то с этого URL, когда пользователь обновляет окно (так как он обрабатывает все символы после хеша как хэш).

Вы можете изменитьрежим «история» в конфигурации vue-router.

// router.js

export const router = new Router({
  mode: 'history',
  routes: [.....]
}

Это будет работать из коробки и удалит хеш в вашем URL - однако, если пользователь перезагрузит страницу (обновит), браузер попытается найти весь URL.Если ваш сервер не настроен для обработки всех маршрутов 'maverick', он вернет ошибку 404.Вы можете прочитать об этом в официальной конфигурации vou-router

...