大神求助一下, 关于react项目压缩之后发布到服务器上面的问题。

#1

项目在本地调试时候, react-router的配置都是可以的。 页面也是可以成功跳转的。
比如登录页: http://localhost:3000/bcard/login

然后我用webpack配置了压缩之后,放到 公司测试服务器上面, 测试服务器的域名: “http://aaa.bbb.com/bcard
首页可以成功访问,http://aaa.bbb.com/bcard

但是跳去登录页就直接404了 http://aaa.bbb.com/bcard/login

为什么本地可以,到服务器上面就不行呢?

这是我的react-router的路由配置:

其中 rootPath() 就是 ‘/bcard’ 。

package.json的 homepage 主页 配置这样:

“homepage”: “http://aaa.bbb.com/bcard

还有就是 有些路径点击按钮之后可以跳转成功,直接访问就是404,

这个问题怎么解决? 知道点的大神 点拨迷津, 小生万分感谢

#2

browserHistory就是这样,要么改成hashHistory,要么服务器配置请求转发

#3

谢谢大神, 听你这么一说, 明白了一点。

#4

react-router推荐的方案是browserHistory而不是hashHistory。

问题是服务器不管/bcard/login还是/bcard都要返回同一个项目文件,所有路由交给前端。
用express打个比方:

app.get('/bcard/*', (req, res) => {
    res.sendfile('index.html');
})
#5

因为你请求的是后端的路由,而不是前端的路由
所以要么改后端,让请求全都指向同一个页面
要么用hashhistory

#6

thanks

#7

楼主解决了吗。我也遇到了

#8

参考:https://github.com/ReactTraining/react-router/blob/v3/docs/guides/Histories.mdhttp://cn.redux.js.org/docs/advanced/UsageWithReactRouter.html