reactjs - 使用 http-server 响应路由器

标签 reactjs react-router httpserver

我们将 react-roucter-domhttp-server 一起使用,当用户加载主页面并单击导航链接时,新页面将完美加载,但是当用户在该路由中刷新页面时,它返回 404 。
这意味着 HTML5 pushState 不适用于 http-server

例子 :

<Router>
    <Route exact path="/" component={Home} />
    <Route path="/about" component={About} />
    <Route path="/topics" component={Topics} />
</Router>

如果用户转到/about页面并刷新它,将发生404错误

有没有办法解决这个问题?

最佳答案

运行 http-server 时使用它:

http-server --proxy http://localhost:8080? ./build

它将无法处理的任何错误请求重定向到您的 react-router 配置所在的 index.html。如果所有请求都到达此页面,则 react-router 会在内部处理路由。

顺便说一句,我在 package.json - scripts 中构建了一个小脚本,以调用所有这些并为构建文件夹提供如下服务:
scripts: {
           ...
           "serveprod": "npm run build && http-server --proxy http://localhost:8080? ./build"
           ...
       }

只需运行:
 npm run serveprod

关于reactjs - 使用 http-server 响应路由器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54511950/

相关文章:

javascript - 如何仅将 Prop 传递给 React 元素数组中的第一个元素?

reactjs - 带有Express服务器的Next.js如何调用自定义错误页面?

reactjs - React Router + Axios 拦截器。如何进行重定向?

javascript - 如何使用react将多个参数作为url中的对象传递

javascript - 为动态子项添加唯一键,而无需任何唯一键

ASP.Net Webforms 的 Javascript 框架

reactjs - react : how can you share the state between views using react-router?

javascript - Google WebSpeech API 抛出 'not-allowed' 麦克风权限错误

node.js - Http服务器nodejs正在运行但不工作

python - 如何使用 Python 设置网络摄像头服务器?