dvajs / dva

🌱 React and redux based, lightweight and elm-style framework. (Inspired by elm and choo)
https://dvajs.com/
MIT License
16.24k stars 3.17k forks source link

dva2.0 该如何正确的使用BrowserHistory? #1497

Closed lulei90 closed 6 years ago

lulei90 commented 6 years ago

项目使用BrowserHistory 在开发阶段roadhog server 时没遇到问题 但是使用roadhog build打包部署测试环境的时候 访问页面全是白色 打开控制台 对应资源都加载了 但是页面就是白色的?搜了下过往issue也尝了下对应解答的方案 但是 页面始终都白色的 dva2.0有没对应使用 BrowserHistory 的文档?

yvanwangl commented 6 years ago

@lulei90 浏览器肯定报错了,贴出来观摩一下

lulei90 commented 6 years ago

@yvanwangl image image 控制台没有报错

sorrycc commented 6 years ago

url 没匹配上,部署到非根目录,需要配置 react-router 的 basename

lulei90 commented 6 years ago

@sorrycc 加过和没加过的都试过 不知道方法是否正确 image

sorrycc commented 6 years ago

basename 是 createBrowserHistory 传入的,配这里应该没用,具体看 history 库。

lulei90 commented 6 years ago

@sorrycc 谢谢🙏 问题解决了 之前没用dva前 直接使用的react-router4 所以关于basename使用参考的router4的文档😂

bibiehy commented 6 years ago

@lulei90 怎么解决的,把Router换成了BrowserRouter嘛?

lulei90 commented 6 years ago

@bibiehy createHistory时候传人配置参数basename

import dva from 'dva';
import createHistory from 'history/createBrowserHistory';
const history = createHistory({
  basename:''//这里放入你对应的 basename
})
const app = dva({
  history: history
});
...
bibiehy commented 6 years ago

@lulei90 知道了,谢谢

Jimi6 commented 6 years ago

@lulei90 我这边是开发APP里面的子应用,按照你的处理方式设置basename,还是不行啊;不然懂是不是我设置错了! 我们的子应用地址类似这样 http://app地址/子应用地址 设置const history = createHistory({ basename:'/子应用地址' })

lulei90 commented 6 years ago

@Jimi6 配置.webpackrc 中的publicPath:/子应用目录/

jianghao7795 commented 6 years ago

一开始正常 但是一刷新就出现Cannot GET /asset/user/login

lulei90 commented 5 years ago

一开始正常 但是一刷新就出现Cannot GET /asset/user/login

@wxid 需要服务端配置404路由到你项目的index.html页面

wb-zd253407 commented 5 years ago

@sorrycc 谢谢 问题解决了 之前没用dva前 直接使用的react-router4 所以关于basename使用参考的router4的文档

请问你的问题是怎么解决的?我也尝试配置了一下,但还是白屏