vue-cli 4 多页面开发非index页history mode界面加载为空

发布于 2022-09-12 00:44:43 字数 1472 浏览 19 评论 0

使用vue-cli4自带的多页面开发模式,有两个spa,分别是index和admin,配置如下

module.exports = {
  ...
  pages: {
    index: {
      entry: 'src/index/main.js',
      template: 'public/index.html',
      filename: 'index.html',
      title: '世说新语',
      chunks: ['chunk-vendors', 'chunk-common', 'index']
    },
    admin: {
      entry: 'src/admin/main.js',
      template: 'public/admin.html',
      filename: 'admin.html',
      title: '管理',
      chunks: ['chunk-vendors', 'chunk-common', 'admin']
    }
  },
  devServer: {
    port: 10086,
    historyApiFallback: {
      rewrites: [
        { from: /^\/$/, to: '/index.html' },
        { from: /^\/admin\//, to: '/admin.html' }
      ],
      disableDotRule: true
    },
    proxy: {
      '/api': {
        target: 'xxx',
        changeOrigin: true
      }
    }
  }
  ...
}

之后分别为两个界面配置对应的项目文件夹
image.png
image.png
下图为文件结构,index文件夹对应index,admin文件夹对应admin,里面放着对应的route,App.vue,main.js 和 vuex 文件。
我开发时遇到一个问题,就是run serve之后加载index部分正常,但是当我访问 localhost:10086/admin 的时候,admin 的app.vue加载了,但是路由中加载的其他组件并没有加载,导致界面一片空白。奇怪的是我使用admin路由的hash mode 可以正常显示。

history mode 失败,只加载了 app.vue

image.png

hash mode 成功

image.png
=。=有没有大佬用vue-cli3做过多页打包的可以分享下经验

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

你另情深 2022-09-19 00:44:43

解决了。
history 路由会匹配完整的路由,而我在route里面设置的路由没有加上admin

// 老的
{
    name: 'dashboard',
    path: '/dashboard',
    component: ....
}
// 改成
{
    name: 'dashboard',
    path: '/admin/dashboard',
    component: ...
}

或者直接在路由里加一个base属性即可

mode: 'history',
base: process.env.NODE_ENV === 'development' ? '/admin' : '/',
...

更具体的可以参考我这个项目

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文