Reactjs React浏览器路由器处理F5-返回404

Reactjs React浏览器路由器处理F5-返回404,reactjs,Reactjs,我已经从HashRouter切换到BrowserRouter,所有导航都运行良好-除了F5 我明白为什么它会失败。。。。向www.example.com/account发送请求将导致404,因为服务器上没有这样的路径 根据我所读到的,我需要补充一点。但我不确定这就是解决办法。当请求在到达我的javascript SPA之前到达服务器时 我的路线是这样的: <Switch> <Route exact path="/" component={Dash

我已经从HashRouter切换到BrowserRouter,所有导航都运行良好-除了F5

我明白为什么它会失败。。。。向www.example.com/account发送请求将导致404,因为服务器上没有这样的路径

根据我所读到的,我需要补充一点。但我不确定这就是解决办法。当请求在到达我的javascript SPA之前到达服务器时

我的路线是这样的:

<Switch>
                <Route exact path="/" component={Dashboard} />
                <Route exact path="/accounts" component={Accounts} />
                <Route exact path="/accounts/:id" component={Accounts} />
                <Route exact path="/account" component={AccountEditor} />

但我觉得我需要修改一些较低的内容。我不确定这是否是一个服务器设置,因为refeshing www.example.com/accounts/会在服务器上强制执行GET并失败,甚至在它查看我的代码之前

我想可能是网页的问题。但是,由于我使用create react app创建了我的应用程序,因此找不到网页包文件。我不确定CreateReact应用程序在哪里配置了所有这些

我如何处理F5,或直接导航到不是/?
主机运行IIS,所以我想知道是否有一个web.config规则或我可以使用的东西来允许URL中的路径-但总是从/?

React
获取构建包括静态文件,其中包括
.js
文件块和单个
index.html
文件。当您将其上载到传统的
ngnix
服务器时,它会按照路由查找文件。要覆盖它并使其工作,您需要使用
.js
应用程序的静态文件服务器为您提供静态文件。我主要使用的是名为
service
npm
包。在服务器上安装
node.js
后,您可以使用以下方法将其安装到服务器上:

npm i -g serve
然后可以使用以下命令为应用程序提供服务:

serve folder_name

希望这对您有用。

React
构建包括静态文件,其中包括
.js
文件块和单个
index.html
文件。当您将其上载到传统的
ngnix
服务器时,它会按照路由查找文件。要覆盖它并使其工作,您需要使用
.js
应用程序的静态文件服务器为您提供静态文件。我主要使用的是名为
service
npm
包。在服务器上安装
node.js
后,您可以使用以下方法将其安装到服务器上:

npm i -g serve
然后可以使用以下命令为应用程序提供服务:

serve folder_name

希望这对您有用。

您是在
dev
中运行应用程序,还是在dev中从
构建
提供服务?一切正常。当我构建并上传到服务器时,我得到了404s。看起来您的请求直接转到服务器而不是客户端。如果您使用的是nginx/apache,那么您可以首先处理到客户端的路由。您是在
dev
中运行应用程序,还是从dev中的
build
提供服务?一切正常。当我构建并上传到服务器时,我得到了404s。看起来您的请求直接转到服务器而不是客户端。如果您使用的是nginx/apache,您可以首先处理到客户端的路由,这可能是正确的。在运行“npm运行脚本生成”后,我FTP我的“生成”文件夹。所以我无法控制他们的服务器-我相信。这对运行IIS的主机有效吗?这可能是正确的。在运行“npm运行脚本生成”后,我FTP我的“生成”文件夹。所以我无法控制他们的服务器-我相信。这对运行IIS的主机有效吗?