【发布时间】:2018-01-17 19:43:01
【问题描述】:
我正在使用 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 error screen grab
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
【问题讨论】:
标签: javascript reactjs nginx react-router linkedin-api