javascript - 调用接口后跳转路由
问题描述
调用接口后尝试用vue-router跳转路由。在本地环境下可以正常工作,但是打包后路由正常跳转但是显示一个空白页面,好像是组件没有正常加载。
这是我动态加载路线的代码。
export function loadPage(url,para,tabTile) {
var newUrl=url.replace('/', '-');
var name=newUrl+"$"+ Math.floor(Math.random ()*1000);
var havTab=false;
if(tabTile==null || tabTile==''){
tabTile="tab";
}
//var havTab=isHaveTab(name)
//if(!havTab){
var tab = {
menuId: name,
name: name,
title: tabTile,
type: "module",
iframeUrl: ""
};
store.commit("common/updateMainTabs",store.state.common.mainTabs.concat(tab));
//store.state.common.mainTabs = store.state.common.mainTabs.concat(tab);
store.commit("common/updateMainTabsActiveName",tab.name);
//store.state.common.mainTabsActiveName = tab.name;
// }
//rotue
//get the main route
var mainRoutes=null;
for (var i = 0; i < router.options.routes.length; i++) {
var tmp=router.options.routes[i];
if(tmp.name=='main-dynamic'){
mainRoutes=tmp;
break;
}
}
var routes=mainRoutes.children;
//Determine whether the route exists
var flag=isHaveRoute(routes,newUrl)
if(!flag){
var route = {
path: name,
component: require('@/views/modules/'+url+'.vue').default||null,
name: name,
meta: {
menuId: name,
title: name,
name: name,
isDynamic: true,
isTab: true,
iframeUrl: ''
}
}
routes.push(route)
mainRoutes.children = routes
router.addRoutes([
mainRoutes,
{ path: '*', redirect: { name: '404' } }
])
}
router.push({ name: name,params:para})
}
解决方案
你在使用 Vue Router 的历史模式吗?如果是这样,您需要配置您的 Web 服务器以正确地将请求重定向到index.html
文档可在此地址获得
推荐阅读
- laravel - 如何使用 Yajra 在 Laravel 中添加标题 excel?
- java - 在 JAX-RS 1.1.0 中处理未知属性
- android - 不要在 AutocompleteTextView 上使用 showDropDown
- sql - 获取 Google BigQuery 中值的最后一次更改时间
- ios - 使用 Alamofire 下载视频正在冻结 Swift iOS 中的 UI
- c# - Unity3D WebGL 导出不显示韩文(韩语)
- swift - 错误“无法使用类型为 '(Int64?)' 的参数列表调用类型为 'String' 的初始化程序”,使用 nil-coalescing 运算符
- c++ - 函数返回一个空向量
- amazon-dynamodb - 查询在控制台中有效,但在代码中无效
- c# - 读取和解析 JSON 文件,但在解析时得到双括号