Vue路由器在哈希模式下错误地处理了网址

时间:2018-12-08 14:30:44

标签: vue.js vue-router vue-cli-3

我的网站托管在IIS上,可以通过machinename/test/访问。
当我尝试以machinename/test/的路线打开站点时,变成machinename/test/#/,并且所有资产都按预期加载。
但是,如果我以machinename/test的路线打开,则变成machinename/test#/,并且资产路径中断。

我该如何解决?我要转到machinename/test时,路径已变成machinename/test/#/

2 个答案:

答案 0 :(得分:0)

转到您的route.js并更改

const router = new VueRouter({
  routes: []

对此

const router = new VueRouter({
  mode: 'history',
routes:[]
})

重建项目并重新上传

Vue参考:https://router.vuejs.org/guide/essentials/history-mode.html#example-server-configurations

答案 1 :(得分:0)

有点怪,但这应该可行:

VueRouter实例化之前,添加:

if (!window.location.pathname.endsWith('test/')) {
  window.location.replace(
    `${window.location.href}`.replace(
      window.location.pathname, 
      `${window.location.pathname}`.replace(
        '/test', 
        '/test/')
      )
  )
}