我有一个后端使用express来提供静态目录,路径/
,其中包含一个页面前端。此后端还提供API REST。
前端是在React中构建的,并使用react-router从Web应用程序的不同视图中路由用户。
如果我的react-router有两个条目,请说/app
和/config
,
如果用户直接在网络浏览器的地址栏中输入网址,我该如何将客户端重定向到该应用程序的视图?
现在,如果我这样做,Express会收到请求并显然会返回404消息,因为单个页面将提供给/
路径。
答案 0 :(得分:2)
解决这个问题的一种简单方法是始终(即使在404s上)向用户发送快速路由处理程序中的index.html
。
请参阅:https://stackoverflow.com/a/25499007/2624575
但是,你需要注意一些事情:
1)您的React Router代码应该开始处理404s:https://stackoverflow.com/a/37491381/2624575
2)您需要正确处理资产的路径(图标,css,js等),否则您会将相同的index.html
发送到这些资源(这将使您的页面渲染不正确)
3)确保react-router
正在使用browserHistory
(不使用哈希#
的历史记录),这样React就能正确呈现您的路线< / p>
希望它有所帮助!