Reactjs 当显式定义深度链接时,ngrok不与react路由器一起工作

Reactjs 当显式定义深度链接时,ngrok不与react路由器一起工作,reactjs,react-router,Reactjs,React Router,上下文:我正在使用付费版本的工具ngrok,向外部点击打开我的React dev环境——我正在使用devServer运行WebPack 4.0 我转到我的应用程序主页: https://my-example-domain.ngrok.io 很好 我单击我的应用程序主页上的一个链接,路由器工作正常,我看到以下内容: https://my-example-domain.ngrok.io/my-sub-page 但是,如果我在这里刷新,ngrok会给出一个404: Cannot GET /my-s

上下文:我正在使用付费版本的工具
ngrok
,向外部点击打开我的React dev环境——我正在使用
devServer
运行
WebPack 4.0

我转到我的应用程序主页:

https://my-example-domain.ngrok.io
很好

我单击我的应用程序主页上的一个链接,路由器工作正常,我看到以下内容:

https://my-example-domain.ngrok.io/my-sub-page
但是,如果我在这里刷新,ngrok会给出一个
404

Cannot GET /my-sub-page
我怀疑的原因是,在
SPA
中,内部应用程序的URL由
React Router
中的前端处理,外部没有名为
/my sub page


有没有办法强迫它工作?

问题是本地服务器不知道您的spa路由(react路由器)。要解决这个问题,您必须创建一个简单的服务器,它将为您的静态构建提供服务,并具有一个支持spa路由的回退路由

express.js中的示例:

从“express”导入express;
从“路径”导入路径;
// ... 其他进口
常量app=express();
应用程序使用(express.static('build'));
/*
... 一些路由处理程序
*/
//*未知端点
应用程序使用(“/*”,(_-req,res)=>{
res.sendFile(path.join(uuu dirname,“../build/index.html”),(err)=>{
如果(错误){
资源状态(500)。发送(错误);
}
});
});
app.listen(process.env.PORT | | 3000,()=>{
console.log('服务器正在运行')
})
这解决了它——在
webpack.config.js

 devServer: {
    ...
    ...
    historyApiFallback: true,    // <- inserting this resolved the issue. 
 }
devServer:{
...
...
历史上的倒退:是的//