问题:
我已经将 React 应用程序部署到我们公司的内部云中。它适用于Cloud Foundry。该应用程序运行良好,但有一个问题。每当我刷新应用程序并且 URL 未指向根目录(例如 myapp.ourcloud.com/my-route)时,我都会收到来自 Nginx 的错误 404。
我正在使用什么:
该应用程序是一个简单的反应应用程序。在 React Router V4 旁边没有安装特殊模块。代码非常简单,我正在使用浏览器路由器,作为应用程序的孩子。只有 3 个组件简单地用 <Link To=.../>
和 <Route path={.../>
路由......如前所述,非常基本。
到目前为止我尝试过:
我已经在根目录中添加了一个静态文件,pushstate: enabled
如Cloud Foundry文档中所述。
我只是自己找到了答案。我将在这里发布它以供未来的用户使用:
我的 manifest.yml 文件包含以下内容:
...
path: build/
...
您只需要将 Staticfile 放在 react 的 build/文件夹中,而不是在项目根目录中。还要小心,每次构建项目时都会删除静态文件。
Serve index.html 对于所有请求,然后反应路由器将管理所有路由。
但是,如果您有需要访问的终结点或某些后端路由,只需为这些路由例外,并为其他所有路由提供服务索引.html即可。