javascript - Nginx 忽略/api 位置指令与 react-router 4,除了在 firefox 隐私浏览中

标签 javascript node.js reactjs nginx proxy

我有一个通过 nginx 提供服务的 React 应用程序,以及一个在 nginx 反向代理后面的 nodejs api 服务器。 nginx 配置如下所示:

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 时,请求被代理到 Node 服务器。

但是,在非私有(private) firefox 和 chrome(隐身 + 非)中,任何页面刷新/重定向到 domain.com/api 都会加载 react 应用程序并将/api 视为 react 路由器路由。奇怪的是,如果我清除 cookies/历史并将我的浏览器指向 domain.com/api,我将正确地被代理到 Node 服务器。只有在我之前加载过一次 React 应用程序后才会出现此问题。

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

最佳答案

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

关于javascript - Nginx 忽略/api 位置指令与 react-router 4,除了在 firefox 隐私浏览中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45538066/

相关文章:

JavaScript:不可枚举的属性 - 何时何地?

Node.js 快速文件服务器(HTTP 上的静态文件)

javascript - React-Router 事件类不适用于嵌套路由

javascript - 传单:找不到 map 容器

javascript - 支持动态过滤的GWT Table

Javascript HTML5 捕获 keyCode 并写入 Canvas

node.js - 微软团队机器人自适应卡片轮播删除卡片

node.js - 我应该在哪里安装/保存node_modules?

Javascript类型从字符串到数字的转换

javascript - 加速多个 async/await 调用的执行