多入口单页应用使用 history 路由出现问题

发布于 2022-09-11 15:35:43 字数 2253 浏览 26 评论 0

问题描述

使用 vue-router 的 history 模式, 单个入口的 spa 应用没有问题,但是配置了一个多入口的页面出现了问题。
项目模版在这里:https://github.com/lwpersonal...

问题出现的环境背景及自己尝试过哪些方法

有 app1/index.html 和 app2/index.html 两个入口,后续可能会添加多个

开始尝试修改 devServer 的配置

devServer: {
    ...
    historyApiFallback: {
      verbose: true,
      htmlAcceptHeaders: ['text/html', 'application/xhtml+xml'],
      rewrites: [
        // 尝试一
        { from: /^\/app2\/index.html/, to: '/app2/index.html' },
        
        // 尝试二
        { from: /app2\/.*/, to: path.posix.join(config.dev.assetsPublicPath, 'app2/index.html') },
        
        // 尝试三
        { from: /.*/, to: '/app2' }
      ]
    },
    ...
  }

然后没有效果

clipboard.png

然后自己配置 node 服务器,前端代理到服务器的端口

// 配置
proxyTable: {
  '/': {
    target: 'http://local.dev.smartstudy.com:8080',
    rewrite: function (req) {
      req.url = req.url.replace(/^\/\w+/, '')
    }
  }
},

服务器

// 第一个插件
const history = require('connect-history-api-fallback')

const fn = options => {
  const middleware = history(options)
  const noop = () => {
  }

  return async (ctx, next) => {
    middleware(ctx, null, noop)
    await next()
  }
}

app.use(fn({
    rewrites: [
      { from: /.*/, to: 'app2/index.html' }
    ],
    verbose: true,
    htmlAcceptHeaders: ['text/html', 'application/xhtml+xml']
}))
// 第二个插件
const historyApiFallback = require('koa2-connect-history-api-fallback')
app.use(historyApiFallback({
    rewrites: [
      { from: /.*/, to: '/app2/index.html' }
    ],
    verbose: true,
    htmlAcceptHeaders: ['text/html', 'application/xhtml+xml']
  }))

这种方法,确实捕捉到了页面路由请求

clipboard.png

也有重定向的提示,但是却没有改变页面,还是一样的 404 结果
然后我试着,把 to 后面的参数改为绝对地址,https://www.baidu.com 等,也都没有效果

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

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

发布评论

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

评论(1

我很OK 2022-09-18 15:35:43

已经解决了,这个配置没有问题,是我在 package.json 中的配置,覆盖了文件中的配置导致的。

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