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

时间:2021-06-13 18:26:59

标签: javascript reactjs express http-status-code-403

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

sudo docker-compose up -d --build master

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

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

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

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

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

有人可以帮我吗?我对 expressjs 不太熟悉,所以我想要一些可能的原因的帮助。

1 个答案:

答案 0 :(得分:0)

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

相关问题