我有一个正在运行的应用(http://simple-pen.surge.sh)。这是使用React / Redux for Front-end和Rails构建的后端。当我进入网站时,我可以注册或登录并为用户发出JWT令牌。登录后,我有一套我可以查看的笔记本。但是,只有在单击笔记本时,我才会被重定向到404 Page Not Found错误。
我不确定为什么在向某些页面发出GET请求时出现错误。 试图访问“http://simple-pen.surge.sh/notebooks/1/notes”网址,但失败了。在一个场景中,我设置了如此用户登录,“simple-pen.surge.sh”根路径将用户重定向到他们的笔记本路由,即呈现页面的“http://simple-pen.surge.sh/notebooks”,但是我直接向此URL发出实际请求,然后我收到错误。
下面分别是React和Rails应用程序的GitHub repos链接。 https://github.com/jamesvphan/simplepen-react https://github.com/jamesvphan/simplepen
任何关于为什么会发生这种情况的帮助或知识都会很棒!
答案 0 :(得分:2)
你无法在这里直接访问你的路线。你必须这样做。
运行npm run deploy
命令后,您必须转到您的react应用程序文件夹的build文件夹。然后拿一份index.html文件。然后将它放在同一个地方并将其重命名为200.html
并继续这个过程。现在它将按照我们的意愿工作。今天就是这样。
详细了解此问题:here
答案 1 :(得分:2)
请按照以下步骤解决(仅4次浪涌):
class MeasurementPage extends Component {
constructor(props) {
// This update the redux "showNav" flag and re-render the component
// props.toggleSidenav(false); // remove this
}
shouldComponentUpdate(nextProps) {
return nextProps.showNav !== this.props.showNav;
}
componentDidMount() {
if(this.props.showNav){ //the if check might not necessary
this.props.toggleSidenav(false);
this.props.getMeasurement(params);
}
}
render() {
return <h1>Some content here</h1>;
}
}
npm run build
cd build
cp index.html 200.html
从这里您可以照常继续
答案 2 :(得分:0)
在package.json中更改构建步骤
"build": "react-scripts build && cp build/index.html build/200.html"
来源:https://medium.com/superhighfives/serving-client-side-routing-with-surge-sh-7b705542cf3