部署通过 expressjs 服务的 React 应用程序时出现内部服务器错误 403

Internal server error 403 on deploying react app served via expressjs

我正在尝试使用 expressjs 为构建反应应用程序提供服务。 React 应用程序已构建,index.html 由我的 expressjs 使用:

提供
app.use('/', express.static('reactapp/build'))

申请很简单。它包含许多卡片,当按下这些卡片时,它们会导航到另一个改变路线的页面。点击之前,假设是 localhost:3000/lists,点击任何卡片后,它路由到 localhosts/lists/1,1 是一个 id。现在,当我尝试在按下任何一张卡片后刷新页面时,我得到“没有找到路径的处理程序”(因为我想它是客户端 url 并且不由 express 处理)。最后 app.use 被触发。

app.use((req, res) => {
            res.status(404).json({message: `No handler for ${req.url}`, requestHost: req.baseUrl})
        })

因此,我所做的是,我在这个中间件部分发送了 index.html 来解决我的问题。

app.use((req, res) => {
                res.sendFile(path.join(__dirname,"..\reactapp\build","index.html"));
            })

它在本地解决了问题,但在部署后我收到“状态代码 403 的内部服务器错误”。我不知道问题出在哪里。根据网站:403(禁止)状态代码表示服务器理解请求但拒绝授权...如果请求中提供了身份验证凭据,服务器认为它们不足以授予访问权限。

有人能帮帮我吗?我对 expressjs 不太熟悉,所以我想得到一些帮助,看看可能是什么原因。

res.sendFile(path.join(__dirname,"..\reactapp\build","index.html")); 设置路径的方式不适用于 linux 机器。这可能是原因。