Javascript 在使用webpack构建react应用程序后,browserRouter不允许我直接转到路由,但hashRouter允许吗?

Javascript 在使用webpack构建react应用程序后,browserRouter不允许我直接转到路由,但hashRouter允许吗?,javascript,node.js,reactjs,react-router,Javascript,Node.js,Reactjs,React Router,我的问题 当我运行npm run dev时,应用程序加载完毕,一切正常,我可以转到定义为的路径,并能够看到组件。但是,当我运行npm运行buildDev并加载应用程序时,它会加载“/”路由,但当我手动转到“/login”时,它会显示“无法获取/登录” 什么有效 如果我在设置我的“链接”时单击“登录”链接,即使在构建之后也可以正常工作。然后我进入我的index.js,将我的browserrouter更改为hashrouter,然后再次运行buildDev和npm start,如果我执行了“/#/l

我的问题 当我运行npm run dev时,应用程序加载完毕,一切正常,我可以转到定义为的路径,并能够看到组件。但是,当我运行npm运行buildDev并加载应用程序时,它会加载“/”路由,但当我手动转到“/login”时,它会显示“无法获取/登录”

什么有效 如果我在设置我的“链接”时单击“登录”链接,即使在构建之后也可以正常工作。然后我进入我的index.js,将我的browserrouter更改为hashrouter,然后再次运行buildDev和npm start,如果我执行了“/#/login”,我就可以转到登录路径

浏览器路由器不工作,我做错了什么?

我的package.json脚本文件也如下所示:
“脚本”:{
“测试”:“echo\”错误:未指定测试\“&退出1”,
“客户端”:“网页包开发服务器--模式开发”,
“服务器”:“nodemon server-dev.js”,
“dev”:“并发\“npm运行服务器\”“npm运行客户端\”,
“buildDev”:“rimraf构建和网页包--模式开发--配置webpack.server.config.js和网页包--模式开发--配置webpack.dev.config.js”,
“buildProd”:“rimraf构建和网页包--模式生产--配置webpack.server.config.js和网页包--模式生产--配置webpack.prod.config.js”,
“开始”:“node./build/server.bundle.js”

},
您可以尝试使用此代码示例(如果您使用服务器仅为react应用程序提供服务):


您可以根据您的文件结构替换index.html文件的链接。

如前所述,您需要在server-dev.js中的app.use routes部分之后添加此链接

app.get('*',(req,res)=>{
res.sendFile(path.join(uu dirname+'/index.html');

})
您如何尝试加载应用程序的生成版本?这更多的是服务器端的问题,而不是reactjs的问题。请解释一下您的服务器。@DJYadav您是指我的server.js文件吗?是的,您需要重定向所有路由以加载其中的react应用程序,能否将该文件的内容粘贴到此处?@DJYadav刚刚编辑了我的主要问题并添加了两个文件内容。server-dev.js和webpack.server.config.js仍然缺少server.js中路由文件的内容,但我正在webpack.server.config.js中执行此操作否?这仅适用于仅使用开发人员资产的开发人员服务器。当您构建应用程序时,您实际上是在导出资产,并使用您自己的服务器,该服务器可以位于任何平台/语言/框架上。在本例中,您使用的是server.js文件(ExpressJs框架)
app.get('*', (req,res) =>{
    res.sendFile(path.join(__dirname+'/client/build/index.html'));
});