2017-08-07 65 views
2

我有一个React应用程序通过nginx和一个nodejs api服务器后面的nginx反向代理。 nginx的配置看起来是这样的:Nginx忽略/ api位置指令与反应路由器4,除非在Firefox浏览器隐私浏览

location/{ 
    try_files $uri /index.html; 
    add_header Cache-Control public; 
} 

location /api/ { 
    proxy_pass http://localhost:8000; 
    proxy_http_version 1.1; 
} 

在Firefox隐私浏览模式,工作的事情如预期:当我刷新页面/重定向到domain.com/api,该请求被代理到节点服务器。

但是,在非私人firefox和chrome中(隐身+不),任何页面刷新/重定向到domain.com/api都会加载反应应用并将/ api作为反应路由器路由。奇怪的是,如果我清除了cookies/history并将我的浏览器指向了domain.com/api,我将正确地代理到节点服务器。这个问题只发生在我之前加载过反应应用程序之后。

这让我发疯,有什么想法?我正在考虑将react-router降级到版本3,但这需要进行一些重构,我不知道这是否能解决问题。

回答

0

我现在通过从create-react-app样板中删除registerServiceWorker()来修复它。

+0

没错,因为这是缓存你的网页。 –