在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問(wèn)答/網(wǎng)絡(luò)安全  HTML/ history api刷新的一個(gè)小疑問(wèn)

history api刷新的一個(gè)小疑問(wèn)

圖片描述

因?yàn)槭窍胱约焊鶕?jù)history-api做一個(gè)簡(jiǎn)單的demo,如圖所示,就是第一次進(jìn)來(lái)和點(diǎn)擊各種導(dǎo)航的時(shí)候會(huì)正確顯示,但是一旦點(diǎn)擊刷新按鈕就會(huì)提示找不到這個(gè)頁(yè)面。不知道有沒(méi)有人知道怎么避免這個(gè)問(wèn)題。

我知道為什么會(huì)這樣,但是我不知道怎么解決。
我試過(guò)用'#',但是用#的話我覺(jué)得沒(méi)把history-api用正確。

回答
編輯回答
淺淺

你知道為什么會(huì)這樣,所以你應(yīng)該只到用#是沒(méi)用的。
這是因?yàn)閡rl為路由,刷新頁(yè)面時(shí)瀏覽器通過(guò)這個(gè)Url到后端拿資源拿不到。所以解決問(wèn)題的方法放在后端,增加請(qǐng)求攔截。

在后端如何解決,簡(jiǎn)單說(shuō)個(gè)例子吧。

假如入你的路由url為http://127.0.0.1/demo1/about,瀏覽器刷新時(shí),后端進(jìn)入請(qǐng)求攔截,攔截確認(rèn)是history模式,然后將request的url重定向/,而后返回。
瀏覽器從/請(qǐng)求頁(yè)面,然后頁(yè)面中的js發(fā)現(xiàn)url匹配路由/demo1/about,而后js渲染頁(yè)面。

可以參考Vue-router里的 connect-history-api-fallback 中間件實(shí)現(xiàn)。

2018年2月17日 19:25