问题描述:

新建一个vue项目,访问地址url后自动添加#号,很不美观。
在这里插入图片描述

解决方法:

在项目路由文件index.js文件中,将路由模式修改为history,代码如下:

export default new Router({
  mode: 'history',
  routes: [
    {
      path: '/',
      name: 'HelloWorld',
      component: HelloWorld
    },
    {
      path: '/cardList',
      name: 'cardList',
      component: cardList
    }
  ]
})

在这里插入图片描述

可能出现的问题:

1、变为history模式,子路由在刷新情况下会出现样式变乱的情况。

问题原因:
./ 是指用户所在的当前目录(相对路径);
/ 是指根目录(绝对路径,项目根目录),也就是项目根目录;

对于hash模式,根路径是固定的,即项目的根目录;但是history模式下,以 / 开头的嵌套路径会被当作根路径,所以使用 ./ 引入文件,就会找不到文件:因为文件本身就是在项目根目录下的,并不在嵌套路径这个目录下。

总结,无论hash模式还是history模式,可以直接使用 / 从项目根目录引入静态文件。

解决方法:
修改index.html文件中的静态文件引入路径。

修改前:

link rel="stylesheet" href="./static/css/base.css" 

修改后:

link rel="stylesheet" href="/static/css/base.css"
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐