浏览器刷新显示“找不到页面”错误,当single-spa应用程序部署在子目录中时

问题描述

我的 single-spa 包含 4 个 react 应用程序。每个都有自己的 react-router-dom。如果我从 4 个应用程序之一点击浏览器刷新,它会显示找不到页面。应用部署在Linux操作系统的apache服务器中。

我不知道我是否缺少基本应用程序中的任何配置。它在 webpack 和 node 的开发服务器中运行良好。

解决方法

是的,因为您部署的应用程序不知道路由。在单页应用程序中,只有您的 / 路由存在。 SPA 中的所有路由都是客户端路由,不会向服务器发出单独的 GET 请求。

在将我的应用程序部署到 netlify 时,我遇到了同样的问题。它显示了默认的 netlify 404 页面。然后我将 _redirects 文件添加到 public 目录中,内容如下:

/* /index.html 200

这将所有 404 路由重定向到默认 index.html,从而使用客户端路由。您需要为您部署的版本找到类似的东西。