背景
服务器同一端口部署多个项目,window.open报错404, 打开的新页面前没有拼接base中设置的web。
(1)在vue.config.js中:publicPath: Env == 'production'? '/web/' : '/',
(2)在new Router中base: Env == 'production'? '/web' : '/',
解决方案
通过this.$router.resolve()方法,与路由配置进行合并,这样就可将路径与路由的配置相结合。
const { href } = this.$router.resolve({
path: `/XXXX/XXXX`
});
window.open(href, "_blank");
携带query参数
const { href } = this.$router.resolve({
path: '/XXXX', query: {
appid: this.appid,
modelId: modelId
}
});
window.open(href, '_blank');
参考文章:https://blog.csdn.net/weixin_64530670/article/details/133278672