使用来自我的 API 的 React Router returns 调用刷新浏览器历史记录

Refreshing with Browser History using React Router returns calls from my API

据我了解,要在 React Router 中正确使用 browserHistory 对象,我们需要使用通配符 * 路由,以便在每次刷新时向用户返回单页应用程序。这成为问题的地方是 我的客户端 URL 与我的 api URL 之一相同。

例如,假设我有一个名为 example.com 的网站,并且该网站上的其中一个页面是 example.com/profile。如果我刷新,预期的行为是它会简单地重新加载网站 example.com 并正确路由到 /profile,因为通配符路由应该向客户端返回单页应用程序。如果我有一条 API 路线 /profile,即 example.com/profile,这不起作用。现在,当用户刷新页面时,他们不会返回个人资料页面,而是从我的 API 返回 JSON 响应。

根据声明通配符路由的顺序,我可以在刷新时返回 API 响应,或者在刷新时返回单页应用程序,但当 API url 与客户端浏览器相同 url.

关于这个问题有什么建议吗?我目前的解决方案是迁移我所有的 API 路由,以便在它们前面添加 /api/

您需要确保您的客户端路由不会与您的 API 路由冲突,并且在 API 路由前加上 /api 是一种非常标准的处理方式。

除了确保它们不会发生碰撞之外,没有真正的解决方法 "around" 这个问题 – 可能有各种解决方法,但如果路线明确,所有相关人员都会更加清楚。