最近,遇到前端项目中修改base url的需求,摸索后发现在vue项目中,分两种情况。

  1. vue router的构建项mode使用hash模式(默认模式)。
    hash模式下在url中使用#区分base url与routes,从而进行路由导航。
    此处只有在vue.config.js文件中,修改publicPath才可生效。
    此模式下,vue router中的构建项base不起作用。
module.exports = {
  publicPath: process.env.NODE_ENV === 'production' ? './' : '/app/front',
}
  1. vue router的构建项mode使用history模式
    此模式下,为了让浏览器可以区分出我们设置的base url和routes,需要在router的添加base这个构建项;此时vue.config.js里的publicPath也可以不用配置。
    但如果要配置需与router中的base保持一致,否则会存在冲突。
new Router({
  mode: 'history',
  base: '/app/front/',
});

——————————————————
记录:vue router在打包之后,在服务器上的实现原理。base url如何放到服务器上。(待解决)

Logo

前往低代码交流专区

更多推荐