【发布时间】:2019-01-16 09:53:42
【问题描述】:
我有一个在 Amazon S3 存储桶中运行的 react 应用程序,它可以在这里找到:这是应用程序的主页,用户可以在搜索栏中搜索船舶。
应用程序会在下拉菜单中生成一个链接,如下所示:
但是,当用户单击链接时,您不会看到详细信息页面,但用户会被重定向到没有 CSS 的该页面。
本地一切正常。
我的路由组件如下所示:
export class Routes extends React.Component {
render() {
return (
<div>
<Route exact path={HOME_PAGE} component={Home}/>
<Route path={HOME_PAGE + "/details/:id"} component={Details}/>
<Route path={HOME_PAGE + "/form/:mode"} component={Edit}/>
<Route path={HOME_PAGE + "/form/:mode/:id"} component={Edit}/>
<Route path={HOME_PAGE + "/csvForm"} component={CsvForm}/>
</div>
);
}
}
我为HOME_PAGE 路径构建了一个前缀,如下所示:
export const HOME_PAGE = (ENVIRONMENT == "DEVELOPMENT") ? "" : "/url"
这将为开发或生产环境设置主页路径。
我正在考虑另一种将船舶 ID 传递到详细信息页面的方法,可能使用 GET 参数。所以路线看起来像这样HOME_PAGE + /details?id=5c335682379b4d7a6ea454a8。
但我不知道react-router是否支持那种参数,也许有人有更好的解决方案来解决这个问题。只是通过在网站上玩耍,我希望我已经提供了足够的信息来了解网站的结构。
【问题讨论】:
-
您是否在 amazon s3 设置中将您的
index.html文件指定为错误页面? -
我不这么认为,顺便说一句,我没有访问服务器的权限。因为我只是公司的实习生。因此,通过将我的压缩构建文件夹通过电子邮件发送给管理员来进行部署。
-
也使用
<Switch>标签。在/form/:mode/:id它应该渲染Edit两次。 reacttraining.com/react-router/web/api/Switch 。还有x2。您是否在下拉列表中使用<Link />组件? reacttraining.com/react-router/web/api/Link -
这可能是解决方案,我会看看。
标签: reactjs amazon-s3 react-router