原因:
vue的路由是由js來控制的,但是,當你刷新瀏覽器的時候,是向服務(wù)器發(fā)送請求的一個過程,當訪問不到的時候必然會返回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問題,這時候后端人員是解決不了的,因為還需要攜帶參數(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'
。
- 先將路由仿真:也就是將
個人博客:午后南雜