vue 构建的前台项目,打包放入Spring Boot后台,无法直接访问页面,只能通过首页菜单进行访问

vue 构建的前台项目,打包放入Spring Boot后台。但是无法直接访问页面,只能通过首页菜单点击进入跳转。(未打包之前,前台可以通过url地址直接访问页面,打包直接就出现了上述情况)
请问有大佬知道是怎么回事嘛?
直接访问:

clipboard.png

通过首页菜单访问可以跳转到页面:

clipboard.png

前台路由设置:
const routes = [

{
    path: '/',
    component: () => import('@/views/Main.vue'),
    name: '',
    children: [{
        path: '',
        component: () => import('@/views/dashboard/Dashboard.vue'),
        meta: [],
    }]
},{
    path: '/404',
    component: () => import('@/views/error/404.vue'),
    name:'404'
}, {
    path: '/reportUpload',
    component: () => import('@/views/report/ReportUpload.vue'),
    meta: ['报表管理', '报表上传配置']
}, {
    path: '/reportDownload',
    component: () => import('@/views/report/ReportDownload.vue'),
    meta: ['报表管理', '报表下载']
}, {
    path: '/dataSource',
    component: () => import('@/views/datasource/DataSource.vue'),
    meta: ['报表管理', '数据源管理']
}, {
    path: '/ReprotData',
    component: () => import('@/views/report/ReprotData.vue'),
    meta: ['报表管理', '报表数据生成']
}, {
    path: '/dictManager',
    component: () => import('@/views/report/dict-manage/DictManager.vue'),
    meta: ['字典管理', '字典配置']
}, {
    path: '/reportManage',
    component: () => import('@/views/report/ReportManager.vue'),
    meta: ['报表管理', '报表管理']
}, {
    path: '/reportStep',
    component: () => import('@/views/report/ReportStep.vue'),
    meta: ['报表管理', '报表进度']
}, {
    path: '/dictSQLManager',
    component: () => import('@/views/report/dict-manage/DictSQLManager.vue'),
    meta: ['字典管理', '字典SQL配置']
}

]

阅读 11k
2 个回答

因为,你直接访问 /datasource 是向服务器发送了一个请求,但是服务器并没有这个文件或处理这个路径的控制器,所以返回404了
为什么 访问/ 可以,因为根目录下有个index.html 就是vue的入口,所以正常返回了页面
你可能又要问,为什么我可以通过 “首页菜单访问”,明明是正常的
这是因为,vue的route 操纵了地址栏里的url,是能过javascript改变了地址栏而已,并没有向服务器发送请求,
哪怎么样可能 /datasource 直接可以访问呢?
解决方案就是 把这个应用程序的所有请求 转发到index.html上
下面的文章,我说的更详细一点,并给出了一个 apache的配置方法,你可以参考
https://www.zhihu.com/questio...

新手上路,请多包涵
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题