首页 > 其他分享 >vue 项目使用 charles 代理线上页面到本地后显示404

vue 项目使用 charles 代理线上页面到本地后显示404

时间:2022-11-10 18:45:35浏览次数:87  
标签:jipiao vue hangban charles 404 base home 页面

背景

某app嵌入了航管的H5页面,在测试过程中,发现其中一个页面白屏。最简单的方案就是代理到本机,看看到底是哪里的bug。

线上链接:https://wtest.133.cn/hangban/vue/jipiao/home
本地链接:https://wtest.133.cn/dev/lfy/hangban/vue/jipiao/home

注意,本地链接是通过 nginx 转发到本机 localhost 的。

charles Map Remote 设置

charles 的安装网上有详细教程,不再赘述。

众所周知,charles 的 Map Remote 功能,可以将线上请求代理到本地。点击Tools -> Map Remote 可以打开设置。这里贴出我的规则:

然而,再次访问线上链接,页面 404 了。

代理转发也正确:

URL	https://wtest.133.cn/dev/lfy/hangban/vue/jipiao/home
Status	Complete
Notes	Mapped from remote URL: https://wtest.133.cn/hangban/vue/jipiao/home
Response Code	200
Protocol	HTTP/2.0

那么,页面为什么会 404 呢?

解决

因为已经代理到本地了,查看本地代码就非常容易。在大致看了vue-router的源码后,才发现我们设置的路由base和链接对不上,导致得到的location错误。

export function getLocation (base: string): string {
  let path = decodeURI(window.location.pathname)
  if (base && path.toLowerCase().indexOf(base.toLowerCase()) === 0) {
    path = path.slice(base.length)
  }
  return (path || '/') + window.location.search + window.location.hash
}

如上所示,base值在本机设置为/dev/lfy/hangban/vue,而访问页面的链接是https://wtest.133.cn/hangban/vue/jipiao/home,导致最终的结果返回的是/hangban/vue/jipiao/home,而不是正确的/jipiao/home

所以,需要将路由的base同线上保持一致,即改为/hangban/vue(其他部分仍然是/dev/lfy/hangban/vue):

const router = new VueRouter({
  mode: 'history',
  base: '/hangban/vue',
  ...
});

标签:jipiao,vue,hangban,charles,404,base,home,页面
From: https://www.cnblogs.com/fayin/p/16878028.html

相关文章

  • vue.js3:分割图片为四宫格九宫格等形式([email protected])
    一,js代码:<template><div><divstyle="width:800px;margin:auto;display:flex;flex-direction:column;"><div>请选择上传图片:<inputtype="file"id......
  • idea 打开vue项目 不能识别@路径
    第一步根目录自定义一个文件:webpath.config.js,内容为:'usescript'constpath=require('path')functionresolve(dir){returnpath.join(__dirname,dir)}mod......
  • vue中rsa加密
    1.下载组件npminstall--savejsencrypt 2.在main中引入importVuetifyfrom'vuetify';import'vuetify/dist/vuetify.min.css';Vue.use(Vuetify) 3、页......
  • Vue学习笔记之使用正则表达式提示Single character alternation in regex
    0x00概述在WebStrom中使用正则表达式,工具提示Singlecharacteralternationinregex 0x01问题Vue页面需要处理多选产生的列表,["a","b","c","d"]转换成如下......
  • vue el-tree树形结构选中子节点,保持父节点选中
    <!--菜单分配弹窗--><el-dialogtitle="菜单分配":visible.sync="menuDialogVisible"width="30%"><el-tree:props="props"......
  • Vue中v-if和v-for一起使用时的优先级
     问题:Vue2.0中v-if和v-for一起使用时报错,怎么解决呢?代码和报错信息如下  原因和解决办法:  在处于同一节点的时候,v-for优先级比v-if高。这意味着v-if将分别......
  • vue3:elementPlus的dailog组件title标题位置设置
     按照官网打开弹出窗想要的是这种效果但自己出现的是下面这种,title跑中间了,body区唯一一个控件,也跑到下面了   设置el-dialog__header高度后,高度的确发生了变......
  • vue前端分页
    偷懒了,其他都是老老实实后端分页的,就这一个,前端涉及音频和三个接口的获取,之前写在一起了没分开。要是还用后端分页,要重新写,想着数据量不大,干脆在前端分页了。 分页用的e......
  • vue实现音频列表,播放互斥
    用了最暴力的方法,直接遍历。先判断是否是需要播放的音频,不是的话再判断它是否正在播放,是的话就关掉这条音频。没什么逻辑可言,但是不知道怎么控制这条音频关闭,花了点时间写......
  • vuecli之dodo底部统计功能
    footer<template><divclass="todo-footer"><label><inputtype="checkbox"/></label><span>......