qiankun 主应用跳转子应用直接404
时间: 2023-08-05 09:33:04 浏览: 181
如果你在 qiankun 中跳转到子应用时遇到了 404 错误,通常是由于子应用的路由配置问题导致的。你可以尝试以下几个步骤来解决问题:
1. 确认子应用可以单独运行
在跳转到子应用之前,你需要先确认子应用可以单独运行,并且其路由功能正常。你可以在本地启动子应用并进行测试,确保其路由功能可以正常工作。
2. 配置 qiankun 的路由模式
在 qiankun 中,你需要配置路由模式为 `history` 模式或 `hash` 模式。如果你的子应用使用了 `history` 模式,你需要在 qiankun 中也配置为 `history` 模式;如果子应用使用了 `hash` 模式,你需要在 qiankun 中也配置为 `hash` 模式。
你可以在主应用的 `registerMicroApps` 方法中添加 `activeRule` 属性来配置路由模式,例如:
```javascript
registerMicroApps([
{
name: 'sub-app',
entry: '//localhost:8080',
container: '#subapp-container',
activeRule: '/sub-app',
props: {
someProp: 'some value'
}
}
], {
// 配置 qiankun 的路由模式
// 如果子应用使用了 history 模式,这里也要配置为 history 模式
// 如果子应用使用了 hash 模式,这里也要配置为 hash 模式
// 默认为 hash 模式
router: {
mode: 'history'
}
});
```
3. 配置子应用的路由
在子应用中,你需要配置正确的路由规则,确保与 qiankun 的路由模式相匹配。例如,如果你在 qiankun 中使用了 `history` 模式,那么子应用的路由规则也需要使用 `history` 模式。
你可以在子应用的路由配置文件中添加 `base` 属性来指定子应用的根路由,例如:
```javascript
import Vue from 'vue';
import Router from 'vue-router';
import Home from './views/Home.vue';
Vue.use(Router);
export default new Router({
mode: 'history',
base: '/sub-app',
routes: [
{
path: '/',
name: 'home',
component: Home
},
// ...
]
});
```
其中,`base` 属性指定了子应用的根路由,这里为 `/sub-app`。注意,这个值要与 qiankun 中配置的 `activeRule` 属性相匹配。
希望以上解决方案可以帮助你解决问题。如果问题仍然存在,请尝试检查子应用的路由配置是否正确,或者提供更多的信息以便我们更好地帮助你解决问题。
阅读全文