首页 > 解决方案 > 手动刷新或写入时,React-router url 不起作用,找不到 404 页面

问题描述

我的生产网站正常打开,但对于第一次访问/访问该链接的用户,他得到一个404 Page Not Found. 对于已经访问过该网站的用户,它加载得很好。

这是网址 - https://literacycloud.org/readaloudsdetail/546-jennifer-phillips-reads-the-invitation

理想情况下,它应该重定向到登录页面,但根本没有 api 被击中。只有在部署到开发或生活时,问题才会在本地重现,因此会出现此问题。

后端必须从他们的一端处理吗?

任何帮助表示赞赏。

下图显示了新用户输入 url 时的错误

标签: reactjsreact-router

解决方案


设置historyApiFallback在您的webpack.config.js. 结帐这个

index.html此外,从服务器为您服务是个好主意。这个想法是,无论您在域上访问什么 url,服务器都应始终返回 ,index.html因为它包含您的反应代码。

这是一个示例代码:

const path = require('path');
const express = require('express');

const app = express();

app.use(express.static(path.join(__dirname, 'build')));
app.set('port', process.env.PORT || 8080);

app.get("*", (req, res, next) => {
    const filePath = path.join(__dirname, 'build', 'index.html');

    res.sendFile(filePath);
});

const server = app.listen(app.get('port'), function () {
    console.log('listening on port ', server.address().port);
});

推荐阅读