Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >VUE路由去除#问题

VUE路由去除#问题

作者头像
用户1174387
发布于 2018-10-08 02:04:13
发布于 2018-10-08 02:04:13
1.8K00
代码可运行
举报
文章被收录于专栏:web开发web开发
运行总次数:0
代码可运行

最近自己在写一个vue的小型管理系统,在浏览器中看到的路由都是带有#的,很是不好看。为了解决此问题,大家一般都会想到:mode: 'history'。可是在开发阶段没有问题,但是一旦build打包后,访问并刷新浏览器后,页面就会报404的错误,为了解决打包后刷新浏览器报404的问题,如果使用nginx的话,还需要做如下配置。下面贴出完整的解决方案。

1、路由代码中添加mode:'history'

在new Router()的下一行添加上:mode: 'history',

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import Vue from 'vue'
import Router from 'vue-router'
import Utils from '@/js/utils.js'
import Login from '@/components/Login'
import PerInfo from '@/components/perInfo/perInfo'
import Home from '@/components/Home'
import Dashboard from '@/components/Dashboard'
import UserList from '@/components/user/userList'
import UserAdd from '@/components/user/userAdd'

Vue.use(Router)

const router = new Router({
  mode: 'history',  //去掉url中的#
  routes: [
    {
      path: '/',
      name: 'home',
      component: Home,
      redirect: '/login',
      // iconCls: 'iconfont icon-home',  //图标样式class
      children: [
        {path: '/home', component: Dashboard, name: '首页'}
      ]
    },
    {
      path: '/login',
      name: '登录',
      component: Login
    },
    {
      path: '/home',
      name: '仪表盘',
      component: Dashboard
    },
    {
      path: '/user',
      component: Home,
      name: '用户管理',
      children: [
        {path: '/user/list', component: UserList, name: '用户列表'},
        {path: '/user/add', component: UserAdd, name: '添加用户'}
      ]
    },
    {
      path: '/',
      component: Home,
      name: '系统设置',
      children:[
        {path: '/setting/perInfo', component: PerInfo, name: '个人信息'}
      ]
    }
  ]
})

router.beforeEach((to, from, next) => {
  console.log('开始页面切换');
  console.log(to.fullPath)
  var tempId = Utils.getCookie('temp-id');
  var userInfo = sessionStorage.getItem('ssm_u_info');
  if(to.fullPath != '/login' && (tempId == null || tempId == '' || userInfo == null || userInfo == '')){
    window.location.href = '/login';
  }
  next();
});

export default router

2、nginx配置

2.1、在nginx目录下新建 vhosts目录

2.2、在vhosts目录下新建my-vue.conf配置文件

2.3、在nginx的配置文件my-vue.conf中添加:try_files $uri $uri/ /index.html;

my-vue.conf文件内容:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
server {
    listen 80;
    server_name my.vue.com;

    charset utf-8;

    location / {
        root /Users/libo/Documents/workspace/Vue-me/my-project/dist;
        index index.html index.htm index.php;
        try_files $uri $uri/ /index.html;
    }
    
    location ^~ /ssm_project/ {
        proxy_pass http://127.0.0.1:8081;
        proxy_cookie_path /127.0.0.1:8081/ /;
         proxy_pass_header Set-Cookie;
        proxy_set_header Host 127.0.0.1:8081;
    }
}

 2.4、在nginx目录下的nginx.conf http下的最后添加如下代码

 2.5、配置hosts文件

在/private/etc下的hosts文件添加如下内容:

   127.0.0.1   my.vue.com

3、访问效果

在命令行执行sudo nginx命令,以启动nginx服务,即可访问,在浏览器中输入my.vue.com,回车后页面如下

登录系统,点击用户列表菜单:

此时此刻,无论当前路由显示的是在登录页还是其他页面,再刷新浏览器,页面也不会报404了,大功告成!

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-09-05 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
vue-router嵌套子路由实际使用
在spa流行之前,前端路由是没有的;而像java之类的后台语言很早就有了,后端路由一般就是定义一系列的访问地址规则,路由引擎根据这些规则匹配并找到对应的处理页面,然后将请求转发给页面进行处理。 在spa应用中,前端路由是直接找到与地址匹配的一个组件或对象并将其渲染出来。改变浏览器地址而不向服务器发出请求有两种做法,一是在地址中加入#以欺骗浏览器,地址的改变是由于正在进行页内导航;二是使用HTML5的window.history功能,使用URL的Hash来模拟一个完整的URL。将单页程序分割为各自功能合理的组件或者页面,路由起到了一个非常重要的作用。它就是连接单页程序中各页面之间的链条。
青梅煮码
2023/03/02
1K0
vue-router嵌套子路由实际使用
Vue 实现动态路由及登录&404页面跳转控制&页面刷新空白解决方案
import NotFound from "@/views/Error/404";
授客
2020/02/18
3.1K0
21.路由模块化
在项目目录下新建目录router,在目录router目录下新建router.js,然后引用vue
玩蛇的胖纸
2019/10/21
4260
Vue路由History模式分析
Vue-router是Vue的核心组件,主要是作为Vue的路由管理器,Vue-router默认hash模式,通过引入Vue-router对象模块时配置mode属性可以启用history模式。
WindRunnerMax
2020/10/26
1.2K0
6 种 Vue 权限路由实现方式总结(最全)
已经登录 (已经取得后台返回的用户的权限信息(角色之类的)),则判断当前要跳转的路由,用户是否有权限访问 (根据路由名称到全部路由里找到对应的路由,判断用户是否具备路由上标注的权限信息 (比如上面的roles : [ 'admin', 'editor' ]))。
夜尽天明
2019/06/20
5.7K0
Vue-router 基础用法
组件复用时嵌套,局部组件更新时,容器create不动,可以通过监听$route变化实现
Cellinlab
2023/05/17
1920
前端路由那些事
假设你浏览器访问的url地址是 http://127.0.0.1/#/test 那么通过 location.hash 获取的hash值为 #/test
树酱
2020/07/03
1K0
前端路由那些事
从零开始做网站5-前端vue项目全局路由和一些配置
vue项目创建好了并且集成了基础的后台管理系统,调用后端接口也调通了。接下来就是开发后台管理系统的其他功能了,首先就是把相关路由和一些基础工具配置一下。
sunonzj
2022/06/21
6420
从零开始做网站5-前端vue项目全局路由和一些配置
nginx 去除井号操作
history 的这种模式需要后台配置支持,将 model 设置为 history 的 时候,打开项目主页,一切正常,可以访问,但是当我们刷新页面或者直接访问路径的时候就会出现404。
White feathe
2021/12/08
1.2K0
cssjshtml vue.js 路由文件抽离
一.合并在一起的main.js import Vue from 'vue' import VueRouter from 'vue-router' import App from './App.vue' import Home from './components/Home' import Menu from './components/Menu' import Admin from './components/Admin' import About from './components/about/Abou
葫芦
2019/04/17
1.2K0
基于Vue+VueRouter+Vuex+Axios的用户登录态路由级和接口级拦截的原理与实现
前后端分离开发、独立部署,为前端的开发人员提供了极大的便利,同时也带来了新的挑战。
胡哥有话说
2019/07/25
1.3K0
基于Vue+VueRouter+Vuex+Axios的用户登录态路由级和接口级拦截的原理与实现
Vue 动态添加路由及生成菜单
写后台管理系统,估计有不少人遇过这样的需求:根据后台数据动态添加路由和菜单。 为什么这么做呢?因为不同的用户有不同的权限,能访问的页面是不一样的。 在网上找了好多资料,终于想到了解决办法。
谭光志
2020/09/28
3.7K0
vue常用手册
1.在src/components目录下新建User.vue文件,同时再新建User目录,在User目录下新建UserAdd.vue和UserList.vue两个文件
玩蛇的胖纸
2018/12/25
8780
cssjshtml vue.js 多级路由
main.js import Vue from 'vue' import VueRouter from 'vue-router' import App from './App.vue' import Home from './components/Home' import Menu from './components/Menu' import Admin from './components/Admin' import About from './components/about/About' impor
葫芦
2019/04/17
1.5K0
前端路由工作原理与使用
网易云音乐 小米移动端 多页应用:与单页应用相对应的,不同的功能通过不同的页面来实现
CRMEB商城源码
2022/05/19
2K0
前端路由工作原理与使用
vue route 带参数跳转路由
vue router 参数获取通常是通过route.query和route.params方法这里将这两种方式通过代码展示出来:
kirin
2020/10/27
3.2K0
vue路由登录拦截
在项目开发中每一次路由的切换或者页面的刷新都需要判断用户是否已经登录,前端可以判断,后端也会进行判断的,我们前端最好也进行判断。
py3study
2021/03/14
2.2K0
【vue】12.0 vue路由:vue-router
Vue Router官网: https://router.vuejs.org/zh/installation.html
conanma
2021/11/03
7600
【Vue Router】010-导航守卫
“导航”,表示路由正在发生改变。vue-router 提供的导航守卫主要用来通过跳转或取消的方式守卫导航。主要用于在导航过程中重定向和取消路由,或者添加权限验证、数据获取等业务逻辑。
訾博ZiBo
2025/01/06
850
【Vue Router】010-导航守卫
18.路由的嵌套
1.在components目录下新建目录User,目录下新建两个组件AddUser.vue和UserList.vue AddUser.vue <template> <div> <h2>{{msg}}</h2> </div> </template> <script> export default { name: 'home', data () { return { msg:'增加用户' } }, methods:{
玩蛇的胖纸
2019/10/21
7250
相关推荐
vue-router嵌套子路由实际使用
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验