解决Vue router history 静态资源访问404,请求链接被加上了path的前一部分

Vue Router history 模式下静态资源路径拼接问题解决方案

问题描述

在 history 路由模式下,某些静态资源(如 CSS、JS)的请求路径会错误地拼接路由前缀。例如:

  • 当前路由:/user/test
  • 资源实际路径:http://localhost:8080/index.js
  • 错误请求路径:http://localhost:8080/user/index.js

触发条件

  1. 使用 history 路由模式
  2. 涉及两层嵌套路由的外部 JS 组件(示例中使用的是 zw-player 视频组件)

解决方案

  1. 改用 hash 模式(不推荐,影响 URL 美观)
  2. 简化路由层级 (如将 /user/test 改为 /test,简单但不完美)
  3. 配置代理 (如通过 Nginx 将 /sys/user 代理到 /sys,不够优雅)
  4. 最佳方案 :在 public/index.html 中添加 <base> 标签
    • 静态配置:<base href="/sys/">
    • 动态配置:<base href="<%= process.env.VUE_APP_BASE_ROUTER %>">

问题分析

该问题主要由 history 模式引起,但网上搜索不到这个问题。

效果对比

  1. 问题现象 :请求路径多出 /user 前缀,导致 404 错误

  2. 解决方案 :添加 <base> 标签后请求正常

相关推荐
SoaringHeart31 分钟前
Flutter调试组件:打印任意组件尺寸位置信息 NRenderBox
前端·flutter
晚风予星1 小时前
Ant Design Token Lens 迎来了全面升级!支持在 .tsx 或 .ts 文件中直接使用 Design Token
前端·react.js·visual studio code
sunny_1 小时前
⚡️ vite-plugin-oxc:从 Babel 到 Oxc,我为 Vite 写了一个高性能编译插件
前端·webpack·架构
GIS之路1 小时前
ArcPy 开发环境搭建
前端
林小帅3 小时前
【笔记】OpenClaw 架构浅析
前端·agent
林小帅3 小时前
【笔记】OpenClaw 生态系统的多语言实现对比分析
前端·agent
程序猿的程4 小时前
开源一个 React 股票 K 线图组件,传个股票代码就能画图
前端·javascript
不爱说话郭德纲4 小时前
告别漫长的HbuilderX云打包排队!uni-app x 安卓本地打包保姆级教程(附白屏、包体积过大排坑指南)
android·前端·uni-app
大雨还洅下4 小时前
前端JS: 虚拟dom是什么? 原理? 优缺点?
javascript
唐叔在学习4 小时前
[前端特效] 左滑显示按钮的实现介绍
前端·javascript