我正在使用 React Router 为多页网站进行路由。当尝试直接转到子页面https://test0809.herokuapp.com/signin 时,您会收到“404 Not Found -nginx”错误(为了能够看到此问题,您可能需要转到此链接隐身模式,所以没有缓存)。如果您从主页转到,所有链接都可以正常工作:test0809.herokuapp.com/
。我正在使用 BrowserRouter 并且能够通过将 BrowserRouter 更改为 HashRouter 来消除“404 not found”错误,它为我的所有 url 提供了一个“#”符号。除了 URL 中包含“#”的所有问题外,最大的问题是我需要在我的网站中实现 LinkedIn Auth,而 LinkedIn OAuth 2.0 不允许重定向 URL 包含 #。
LinedIn OAuth 2.0 错误屏幕抓取
import React, { Component } from 'react'
import { BrowserRouter as Router, Route, Link } from 'react-router-dom'
import LinkedIn from 'react-linkedin-login'
const Home = () => <div><h2>Home</h2></div>
const About = () => <div><h2>About</h2></div>
class Signin extends Component {
callbackLinkedIn = code => {
console.log(1, code)
}
render() {
return (
<div>
<h2>Signin</h2>
<LinkedIn
clientId="clientID"
callback={this.callbackLinkedIn}
>
</div>
)
}
}
const BasicExample = () =>
<Router>
<div>
<ul>
<li>
<Link to="/">Home</Link>
</li>
<li>
<Link to="/about">About</Link>
</li>
<li>
<Link to="/signin">Signin</Link>
</li>
</ul>
<hr />
<Route exact path="/" component={Home} />
<Route path="/about" component={About} />
<Route path="/signin" component={Signin} />
</div>
</Router>
export default BasicExample
有关解决方法的任何建议?
背景:我用 create-react-app 开始了这个项目。GitHub 存储库:/debelopumento/test0809