浪涌部署的React应用程序 - 找不到404页面

时间:2017-05-08 19:11:55

标签: ruby-on-rails reactjs surge.sh

我有一个正在运行的应用(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

任何关于为什么会发生这种情况的帮助或知识都会很棒!

3 个答案:

答案 0 :(得分:2)

你无法在这里直接访问你的路线。你必须这样做。 运行npm run deploy命令后,您必须转到您的react应用程序文件夹的build文件夹。然后拿一份index.html文件。然后将它放在同一个地方并将其重命名为200.html 并继续这个过程。现在它将按照我们的意愿工作。今天就是这样。

详细了解此问题:here

答案 1 :(得分:2)

请按照以下步骤解决(仅4次浪涌):

  1. 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>; } }
  2. npm run build
  3. cd build
  4. 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