最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Vue實(shí)現(xiàn)遠(yuǎn)程獲取路由與頁面刷新導(dǎo)致404錯(cuò)誤的解決

 更新時(shí)間:2019年01月31日 10:27:56   作者:madfrag  
這篇文章主要介紹了Vue實(shí)現(xiàn)遠(yuǎn)程獲取路由與頁面刷新導(dǎo)致404錯(cuò)誤的解決,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧

一、背景

先簡單介紹一下現(xiàn)在項(xiàng)目情況:前后端分離,后端服務(wù)是Java寫的,前端是Vue+ElementUI。

最近的一個(gè)需求是:通過后端Api去獲取前端路由表,原因是每個(gè)登錄角色對(duì)應(yīng)的前端路由表可能是不一樣的(權(quán)限問題)

二、遇到的問題

因?yàn)榍岸薞ue+ElementUI項(xiàng)目是單頁應(yīng)用——即只有一個(gè)index.html頁面,如果路由從遠(yuǎn)程獲取的話,每次F5或點(diǎn)擊刷新按鈕刷新頁面的時(shí)候,就會(huì)找不到對(duì)應(yīng)的路徑而報(bào)404錯(cuò)誤  

三、解決方案

1、通過api遠(yuǎn)程獲取路由,然后在前端生成對(duì)應(yīng)路由

/* 
 將 服務(wù)器獲得的[路由json字符串]轉(zhuǎn)換成可訪問的[前端路由組件] 
 @remoteRouterMap 服務(wù)器獲得的[路由json字符串]
*/
function transformJsonToRouter(remoteRouterMap) {
 const accessedRouters = remoteRouterMap.filter(route => {
  if (!route.component) {
   route.component = Layout
  }else {
   route.component = route.component.replace("@/views/","")
   route.component = _import(route.component)
  }
  if (route.children && route.children.length) {
   route.children = transformJsonToRouter(route.children)
  }
  return true
 })

 return accessedRouters
}

2、將路由模式改成history模式(vue默認(rèn)是hash模式)

export default new Router({
 mode: 'history', //后端支持可開
 scrollBehavior: () => ({ y: 0 }),
 routes: constantRouterMap,
 linkActiveClass: 'is-active'
})

3、在nginx中設(shè)置將404錯(cuò)誤指向index文件

location / {
 try_files $uri $uri/ /index.html;
}

以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論

罗田县| 抚州市| 融水| 湘潭县| 托里县| 曲沃县| 孝义市| 林甸县| 宁都县| 平顶山市| 呼图壁县| 郴州市| 宜兰市| 新营市| 苏州市| 彩票| 大港区| 海林市| 肇东市| 嵊泗县| 龙井市| 乌审旗| 宁南县| 运城市| 云浮市| 香港| 屏边| 民勤县| 乳山市| 巴彦淖尔市| 南郑县| 平武县| 大兴区| 三江| 宿州市| 高密市| 丹江口市| 潞西市| 林芝县| 丰原市| 八宿县|