簡體   English   中英

部署后,React路由器不起作用

[英]React router doesn't work after deploying

我在Google Cloud Platform上部署了一個react-app: https : //just-palace-214904.appspot.com/

但是,僅顯示第一頁,超鏈接不起作用。 當我在本地主機上運行應用程序時,它們運行良好。 以下是我的設置:

index.js:

 import React from 'react'; import ReactDOM from 'react-dom'; import {BrowserRouter, Route, Switch} from 'react-router-dom' import SignIn from './components/SignIn'; import SignUp from './components/SignUp'; import ForgotPass from './components/ForgotPass'; ReactDOM.render((<BrowserRouter> <Switch> <Route exact={true} path="/" component={SignIn}/> <Route path="/signup" component={SignUp}/> <Route path="/forgot" component={ForgotPass}/> </Switch> </BrowserRouter>), document.getElementById('root')); 

我的超鏈接:

 <a href="/forgot">Forgot password?</a><br/> <a href="/signup">Create account</a> 

您應該使用Link而不是錨標記。

更改

 <a href="/forgot">Forgot password?</a><br/>
 <a href="/signup">Create account</a>

<Link to="/forgot">Forgot Password?</Link><br/>
<Link to="/signup">Create account</Link>

Link來自react-router-dom包。

這是工作示例。 https://codesandbox.io/s/qz4l7nzv09

我不知道為什么,我之前遇到過的類似問題,使用HashRouter可以HashRouter工作,而不是使用BrowserRouter

import { HashRouter } from 'react-router-dom'

啊,我在這里找到了一個博客,解釋了它們之間的差異。

BrowserRouter當你將要處理動態請求的服務器應該使用(知道如何應對任何可能的URI),而HashRouter應該用於靜態網站(其中服務器只能響應請求的,它知道文件)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM