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

vue router嵌套路由在history模式下刷新無法渲染頁面問題的解決方法

 更新時間:2018年01月25日 11:49:30   作者:逍遙云天  
這篇文章主要介紹了vue router嵌套路由在history模式下刷新無法渲染頁面問題的解決方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下

解決vue-router嵌套路由(子路由)在history模式下刷新無法渲染頁面的問題,具體內(nèi)容如下

一. 異常描述

本來使用的是vue-router的hash模式,但是hash模式下url需要帶“#”符號,不僅看起來不舒服,而且有些場景下是會破壞路由中的"#"(微信分享頁面就會把"#"后邊的內(nèi)容處理掉),所以就需要使用history模式,然后就讓后端改下nginx配置:

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

vue-router使用history模式+使用嵌套路由:

const router = new Router({
 mode: 'history',
 routes: [
  {
   path: '/',
   component: mall,
   name: 'mall'
  },
  ……

  //我的銀行卡
  {
   path: '/myCard',
   meta: { requireAuth: true },
   component: myCard,
   name: 'myCard',
   children:[
   { path:'', component: card},
   { path:'add', component: add}
   ]
  }
   ……
 ]
})

訪問路由和嵌套路由頁面,顯示正常,但是刷新頁面的時候,嵌套路由頁面就出異常了:

頁面樣式全亂了,看下頁面請求加載的靜態(tài)文件,所有靜態(tài)文件都是404;

二. 異常解析

1. 看下官方文檔對嵌套路由的說明:

2. 再看之前的異常頁面,看來我們的父路由成了根目錄了看下文件路徑了:

3. 看下我們引入這些異常文件,是在index.html文件中直接引用的,也就是在根路徑下引入的。之前的hash模式下,根路徑是不會變的,所以我們在index.html文件中直接引入這些靜態(tài)文件,是可行的,但是使用history模式后,根路徑就不固定了。那么這種引入方式就不可行了,所以才造成了上邊出現(xiàn)的頁面無法渲染的問題:

三. 解決問題

這里有點尷尬,先考慮的主Vue中以Import的方式引入靜態(tài)樣式文件,的確可行,但是最后發(fā)現(xiàn),直接修改index.html文件中的靜態(tài)文件引入路徑就OK了:

修改前:

<script src="./static/js/stomp.js"></script>

修改后

<script src="/static/js/stomp.js"></script>

四. 原理

./ 是指用戶所在的當前目錄(相對路徑);

/ 是指根目錄(絕對路徑,項目根目錄),也就是項目根目錄;

對于hash模式,根路徑是固定的,就是項目的根目錄,但是history模式下,以/開頭的嵌套路徑會被當作根路徑,所以使用“./”引入文件,就會找不到文件了,因為文件本身就是在項目根目錄下的,并不在嵌套路徑這個目錄下。

總結(jié),無論hash模式還是history模式,可以直接使用“/”從項目根目錄引入靜態(tài)文件。

PS:之前一段時間就遇到過這個問題,百度了好久,發(fā)現(xiàn)很少有人問這個問題,有一個也沒人回答。也問了好些前端大神,還是沒能解決這個問題。也許是平時寫慣了“./” 和“../”這些開頭的路徑了吧,并沒有注意到靜態(tài)文件引入方式的問題,折騰了好些方法,最后很尷尬的發(fā)現(xiàn),其實問題很簡單,只是對框架的底層了解不透徹罷了!

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

相關(guān)文章

  • vue實現(xiàn)動態(tài)控制表格列的顯示隱藏

    vue實現(xiàn)動態(tài)控制表格列的顯示隱藏

    這篇文章主要為大家詳細介紹了vue實現(xiàn)動態(tài)控制表格列的顯示隱藏,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • vue代碼分割的實現(xiàn)(codesplit)

    vue代碼分割的實現(xiàn)(codesplit)

    這篇文章主要介紹了vue代碼分割的實現(xiàn)(codesplit),做了代碼分割后,會將代碼分離到不同的bundle中,然后進行按需加載這些文件,需要的朋友可以參考下
    2018-11-11
  • vue3路由新玩法useRoute和useRouter詳解

    vue3路由新玩法useRoute和useRouter詳解

    這篇文章主要介紹了vue3路由新玩法useRoute和useRouter,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • Vue實戰(zhàn)教程之仿肯德基宅急送App

    Vue實戰(zhàn)教程之仿肯德基宅急送App

    這篇文章主要介紹了Vue實戰(zhàn)教程之仿肯德基宅急送App,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-07-07
  • Vue項目添加動態(tài)瀏覽器頭部title的方法

    Vue項目添加動態(tài)瀏覽器頭部title的方法

    這篇文章主要介紹了Vue項目添加動態(tài)瀏覽器頭部title的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-07-07
  • Vue3中defineProps設(shè)置默認值的方法實現(xiàn)

    Vue3中defineProps設(shè)置默認值的方法實現(xiàn)

    Vue3中我們經(jīng)常需要使用defineProps來定義組件的屬性,本文主要介紹了Vue3中defineProps設(shè)置默認值的方法實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2024-07-07
  • Vue項目報錯:parseComponent問題及解決

    Vue項目報錯:parseComponent問題及解決

    這篇文章主要介紹了Vue項目報錯:parseComponent問題及解決,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-05-05
  • Vue+thinkphp5.1+axios實現(xiàn)文件上傳

    Vue+thinkphp5.1+axios實現(xiàn)文件上傳

    這篇文章主要為大家詳細介紹了Vue+thinkphp5.1+axios實現(xiàn)文件上傳,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-05-05
  • vue element-ui導航實現(xiàn)全屏/取消全屏功能

    vue element-ui導航實現(xiàn)全屏/取消全屏功能

    這篇文章主要介紹了vue element-ui導航實現(xiàn)全屏/取消全屏功能,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • 在?Vue?中使用?iframe?嵌套頁面的步驟

    在?Vue?中使用?iframe?嵌套頁面的步驟

    這篇文章主要介紹了在?Vue?中使用?iframe?嵌套頁面,使用?iframe?技術(shù)可以實現(xiàn)多個頁面之間的數(shù)據(jù)傳遞和交互,提高了網(wǎng)站的整體性能和用戶體驗,需要的朋友可以參考下
    2023-05-05

最新評論

东方市| 伊宁市| 台湾省| 台州市| 都江堰市| 探索| 岳阳县| 专栏| 抚松县| 烟台市| 苏州市| 大同市| 新竹市| 吴忠市| 永福县| 江西省| 陆良县| 青州市| 磐石市| 米林县| 庐江县| 迭部县| 贵阳市| 喀喇沁旗| 阳原县| 盐亭县| 阿荣旗| 岑溪市| 五常市| 万州区| 武夷山市| 天水市| 永川市| 潮州市| 息烽县| 荔波县| 霸州市| 石阡县| 巍山| 绥宁县| 尼木县|