原因:
vue的路由是由js來控制的,但是,當(dāng)你刷新瀏覽器的時候,是向服務(wù)器發(fā)送請求的一個過程仪吧,當(dāng)訪問不到的時候必然會返回404。
解決辦法:
- 后臺配合:將請求同意指向一個有效地址鞠眉。
比如薯鼠,你的首頁請求地址為www.aaa.com/go.html
,但是路由變?yōu)?code>www.aaa.com/main械蹋,這時候你可以與后端人員商量出皇,將www.aaa.com/...
統(tǒng)統(tǒng)指向www.aaa.com/go.html
,這樣就解決了404問題哗戈。 - 仿真路由:路由后帶.html后綴
我遇到一個問題恶迈,就是頁面初次加載時是攜帶參數(shù)的,www.aaa.com/go.html?p=123
谱醇,根據(jù)參數(shù)p決定是跳轉(zhuǎn)路由A還是路由B暇仲,加入跳轉(zhuǎn)到了路由A,也就是www.aaa.com/routerA
副渴,這時候刷新奈附,就會出現(xiàn)404問題,這時候后端人員是解決不了的煮剧,因?yàn)檫€需要攜帶參數(shù)斥滤。
我的解決辦法是:- 先將路由仿真:也就是將
/routerA
變?yōu)?/routerA.html
,并在跳轉(zhuǎn)時攜帶參數(shù)勉盅,this.$router.push({path: /routerA.html${this.$router.query.p}})
佑颇,所以刷新時,會向服務(wù)端請求routerA.html
草娜,并且攜帶參數(shù)p挑胸; - 這時在
www.aaa.com
下真的存放一個routerA.html
,在文件里面獲取參數(shù)p宰闰,然后跳轉(zhuǎn)window.location.href='www.aaa.com/go.html?p=123'
茬贵。
- 先將路由仿真:也就是將
個人博客:午后南雜