我正在为多页面网站使用React Router进行路由。当直接访问子页面https://test0809.herokuapp.com/signin时,会出现"404 Not Found -nginx"错误(要查看此问题,您可能需要在无痕模式下访问此链接以避免缓存)。如果从主页
test0809.herokuapp.com/
进入,则所有链接均正常工作。我之前使用的是BrowserRouter,但通过将其更改为HashRouter,我能够消除"404未找到"错误,这样所有的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
envsubst
时忘记转义$
符号,则会出现错误,指出“try_files”指令中参数无效。在这种情况下不要忘记转义美元符号,然后就可以继续进行了。我花了30分钟才发现我使用有问题。 - krosscss|scss|js
添加到正则表达式中。谢谢! - Paul Tuckett