路由的用户在一个页面应用程序使用我快递服务的静态目录的路径/
,其中包含一个单页的前端有一个后端。这个后端也提供API REST。使用地址栏中
的前端是内置的反应,并使用反应路由器路由从该web应用程序的不同视图的用户。
如果我的反应路由器有两个条目,让说/app
和/config
,
我怎样才能将客户端重定向到应用程序的这一观点,如果用户在浏览器的地址栏直接进入的网址是什么?
现在,如果我这样做,快速获取请求,显然会返回一个404的消息,作为单页被送达/
路径。
路由的用户在一个页面应用程序使用我快递服务的静态目录的路径/
,其中包含一个单页的前端有一个后端。这个后端也提供API REST。使用地址栏中
的前端是内置的反应,并使用反应路由器路由从该web应用程序的不同视图的用户。
如果我的反应路由器有两个条目,让说/app
和/config
,
我怎样才能将客户端重定向到应用程序的这一观点,如果用户在浏览器的地址栏直接进入的网址是什么?
现在,如果我这样做,快速获取请求,显然会返回一个404的消息,作为单页被送达/
路径。
一个简单的方法来解决是要始终(甚至404)在您的明确路线处理程序发送到用户的index.html
。
参见:https://stackoverflow.com/a/25499007/2624575
但是,你需要采取一些后事:
1)你的阵营路由器代码应该开始处理404:https://stackoverflow.com/a/37491381/2624575
2)您需要正确处理(图标,css,js等)的路径,否则你会发送相同的index.html
到那些资源类型(这会使你的页面渲染不正确)
3)Make s react-router
正在使用browserHistory
(不使用哈希的历史#
),这样React将能够正确呈现您的路线
希望它有帮助!
所以,我只想澄清:我一定要摆脱快速静态服务,并在前台检查请求的路径? – lilezek
@lilezek你仍然需要表达静态服务(因为你的所有资产都需要通过快递服务)。您只需添加一条规则即可在404上始终提供“index.html”。你现在的问题是,express是将“/ app”和“/ config”视为404s,但你需要'index.html'。你明白吗? –
是的,我明白了一部分,但不要反应路由器将路由用户从给'index.html'后地址栏应用程序视图?我还需要在前端做些什么吗? – lilezek