访问多于一个/分割符的路由匹配时报错
路由里面的component的component属性如果用()=>import('something')方式引入,在访问如同
的地址会报错
import React from 'react';
import { Router, Switch, Route } from 'dva/router';
import dynamic from 'dva/dynamic';
function RouterConfig({ history, app }) {
const Home = dynamic({
app,
component: () => import('./routes/Home/Home'),
});
const Partner = dynamic({
app,
component: () => import('./routes/Partner/Partner'),
});
const PartnerDetail = dynamic({
app,
component: () => import('./routes/Partner/PartnerDetail'),
});
return (
<Router history={history}>
<Switch>
<Route exact path="/" component={Home} />
<Route exact path="/partner" component={Partner} />
<Route exact path="/partner/:name" component={PartnerDetail} />
</Switch>
</Router>
);
}
export default RouterConfig;
访问 http://domain/partner/www 时进入
<Route exact path="/partner/:name" component={PartnerDetail} />
Unhandled Rejection (Error): Loading chunk 2 failed.
HTMLScriptElement.onScriptComplete
internal:/webpack/bootstrap df2d9286a38225b2cb63:756
This screen is visible only in development. It will not appear if the app crashes in production.
Open your browser’s developer console to further inspect this error.
然后如果把
const Home = dynamic({
app,
component: () => import('./routes/Home/Home'),
});
里的component: () => import('./routes/Home/Home'),换成component: () => HomeRouter 就好了(这里的HomeRouter是通过import HomeRouter from './routes/Home/Home';导入的
"dva": "^2.1.0",
"dva-loading": "^0.3.0",
"history": "^4.7.2",
"query-string": "^5.0.0",
"react": "^16.2.0",
"react-dom": "^16.2.0",
"react-slick": "^0.16.0"
Add "publicPath": "/" to .webpackrc or .roadhogrc can fix this issue
Most helpful comment
Add "publicPath": "/" to .webpackrc or .roadhogrc can fix this issue