javascript - react-router-dom 不适用于 Express 后端的生产环境
问题描述
我在生产环境中遇到了 react-router-dom 的重定向问题。这是我开发的网站:链接。如果您单击其中一个问题,应用程序将重定向到该问题的链接。但是,如果您将问题的链接粘贴到地址栏中并按 Enter 键,例如,当您单击this时。发生 404 错误。本地主机中不会发生此问题
我做了一些研究,似乎 react-router-dom 不适用于生产环境。路由器的代码如下:
import { BrowserRouter as Router, Route, Switch } from 'react-router-dom';
<Router>
<Route exact path='/' component={Home} />
<Route exact path='/about' component={About} />
<Route exact path='/contact' component={Contact} />
<Route exact path='/help' component={Help} />
<Switch>
<Route exact path="/login" component={Login} />
<Route exact path="/register" component={Register} />
<Route exact path="/users" component={Users} />
<Route exact path="/users/:user_id" component={Profile} />
<Route exact path="/tags" component={TagsPage} />
<PrivateRoute exact path="/questions/ask" component={CreateQuestion} />
<Route exact path="/questions/:question_id" component={QuestionsPage} />
</Switch>
</Router>
在快速服务器上,我将所有请求重定向到构建后的index.html
文件:
if (process.env.NODE_ENV === 'production') {
app.use(express.static('client/build'));
app.get('*', (req, res) => {
res.sendFile(path.resolve(__dirname, 'client', 'build', 'index.html'));
})
}
但由于某种原因,它仍然无法正常工作。我在这里做错了什么?
解决方案
推荐阅读
- graphics - Linux mint 上的未绑定模块 Graphics Ocaml
- html - Django为每个帖子创建.row
- php - 了解自动驾驶仪
- javascript - 使用功能性 React 组件通过提交按钮创建文件上传
- graphql - GraphQL 更新多个状态
- reactjs - React-Native 将数据从子级传递给父级错误
- cassandra - Storm-Crawler 与 Cassandra 集成并在 Gradle 中构建拓扑
- python-3.x - AttributeError:“NoneType”对象没有属性“SSLContext”在 Win10 上的 PyCharm 2018.3.7 中运行烧瓶脚本
- c++ - 如何将 libavformat 控制台输出引导到自定义记录器?
- python - 使用 lmfit 评估模型