node.js - 在 React/Express 应用程序中输入错误的 URL 或刷新会导致所有页面出错,直到用户返回主页
问题描述
我有一个带有 React 前端的 Express.js 应用程序。一切正常,直到我为不存在的资源输入 URL(甚至在?
现有 URL 的末尾添加一个):我收到 500“内部服务器错误”,然后甚至导航到一个真实的 URL 之后都会抛出相同的错误. 它只会在返回主页后恢复正常运行(这让我认为问题可能出在 React 方面,我对单页 React 应用程序不了解)。
我在后端看到的错误是:TypeError: path must be absolute or specify root to res.sendFile
,它对应于我的代码中的这一位(我将 Express 指向 React 构建文件):
app.use(express.static('../client/build'));
app.get('/*', function(req, res) {
res.sendFile('../client/build/index.html');
});
处理(或理想情况下,防止)此错误的最佳方法是什么?请注意,它不会使应用程序崩溃,它只需要重新访问主页即可重置。
编辑
即使我只是刷新(工作)页面,它也会导致相同的错误。
解决方案
推荐阅读
- python - 每当在源存储桶中上传 zip 文件时,AWS lambda 函数都会触发从源 s3 到目标 s3 的复制
- reactjs - 如何用反应钩子替换剥离道具并分配类名的HOC?
- java - Spring MVC 缺少请求属性
- angular - Angular Material Ripple 出现在对象内容或文本的顶部
- java - 尽管包装在正确的 JAR 中并使用了必要的导入语句,如何解决 getSqlMapClientTemplate() 方法未定义错误?
- php - 在 PHP 中计算 CRC 16 X25
- sql-server - 在过程中使用动态 sql 创建模式和表
- windows-10 - Windows 10 在重新启动时自动创建新配置文件
- python - 使用通配符按名称查找元素?
- javascript - 如何在客户端 Javascript 中调用 Node/Express API 密钥 (.env)?