第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

一個(gè)關(guān)于react-router和后端路由的問(wèn)題?

一個(gè)關(guān)于react-router和后端路由的問(wèn)題?

森林海 2018-10-24 14:11:52
我寫(xiě)的個(gè)人博客的項(xiàng)目,前端用的react-router,后臺(tái)用的express,后臺(tái)只提供接口,我點(diǎn)擊導(dǎo)航條上面的選項(xiàng),路由就會(huì)改變,然后切換到不同的組件,如圖顯示的。但是當(dāng)我直接改變?yōu)g覽器地址的url時(shí),服務(wù)器就會(huì)報(bào)404錯(cuò)誤,我大概理解是因?yàn)檫@樣會(huì)請(qǐng)求后臺(tái)接口,問(wèn)題來(lái)了,是不是每寫(xiě)一個(gè)前端路由,后臺(tái)也要相應(yīng)寫(xiě)一個(gè)路由?
查看完整描述

1 回答

?
瀟瀟雨雨

TA貢獻(xiàn)1833條經(jīng)驗(yàn) 獲得超4個(gè)贊

當(dāng)然不是你想的這樣,否則也太蠢了不是么?

問(wèn)題在于你需要明白一件事情:前端路由是在頁(yè)面內(nèi)的 js 代碼加載并執(zhí)行完成之后才能正常工作的,當(dāng)它開(kāi)始工作的時(shí)候,URL 的變化就不再是傳統(tǒng)意義上的刷新,而是跟蹤 history 的變化。

那么什么時(shí)候加載成功了呢?一般來(lái)說(shuō)就是通過(guò) index.html 來(lái)加載的(這就是 spa 的最基本形態(tài))

你手動(dòng)刷新了非根路徑的 URL 之后為什么 404 呢?很顯然,這一次刷新之后得到的響應(yīng)是你的后端提供的,并且不再是 index.html 了,那么你既沒(méi)有后端對(duì)應(yīng)的路由也無(wú)法通過(guò) index.html 加載前端路由,不 404 還能是什么呢?

你有兩種選擇,一難一易。

難的是做同構(gòu)處理,也就是前后端使用同一套路由,react router 本身是支持同構(gòu)的,你可以參考它文檔里關(guān)于 isomorphic 或 server side rendering 相關(guān)的內(nèi)容。

易的是后端做全局路由匹配,無(wú)論是發(fā)過(guò)來(lái)的請(qǐng)求 URL 是什么,統(tǒng)統(tǒng)返回 index.html 讓前端去匹配不同的 URL。


查看完整回答
反對(duì) 回復(fù) 2018-11-15
  • 1 回答
  • 0 關(guān)注
  • 823 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)