导航出同一主机上的 react-router 单页应用程序

IT技术 reactjs react-router single-page-application
2021-05-23 22:38:23

我正在尝试设置将用户带出当前 SPA 并进入另一个 SPA(或下载 pdf)的链接。

我尝试使用<a>标签,但是每当我导航到我不想再进入 SPA 的路径时,它都会显示我卡在其中的 SPA 的基本布局。

如果我在正确的路径上硬刷新,我会看到另一个 SPA,在另一种情况下,我正在尝试查看 pdf。

示例锚元素: <a href="/requirements" rel="external" target="_blank">

路由器代码:

ReactDOM.render(
  <Provider store={store}>
    <ConnectedRouter history={history}>
      <Route path="/" component={App(Main)} />
    </ConnectedRouter>
  </Provider>,
  document.getElementById('root')
);

我使用 create react app 生成了两个 SPA。我还尝试注释掉 Service Worker 代码,以防出现问题。

我正在使用 nginx 反向代理为两个 SPA 提供服务。

我也试过window.location.reload(true)强制重装,但它仍然不起作用。我必须打开 chrome 检查器和 cmd + shift + r 才能完全重新加载。

1个回答

即使我阻止了 service worker 的加载,它仍然被注册到页面(不确定它是否正确)。我必须确保服务工作没有注册,然后我的导航按预期工作。

幸运的是,create-react-app 有一个很好的内置函数来取消注册服务工作者。

下一步是弄清楚如何保留 Service Worker,但要指定始终传递到服务器的 url。