解决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> 标签后请求正常

相关推荐
Championship.23.245 分钟前
Open Source Pipeline Skill深度解析:自动化开源贡献全流程
前端·javascript·html
Bigger5 分钟前
🧠 前端岗位的"结构性调整":现象背后的冷思考
前端·程序员·ai编程
薯老板9 分钟前
vue组件之间的通信
前端·vue.js
迪菲赫尔曼9 分钟前
从 0 到 1 打造工业级推理控制台:UltraConsole(Ultralytics + FastAPI + React)开源啦!
前端·yolo·react.js·计算机视觉·开源·fastapi
万邦科技Lafite10 分钟前
京东开放API接口:item_get返回参数指南
java·前端·javascript·api·电商开放平台
梦想CAD控件15 分钟前
网页CAD协同设计平台-生产级在线实时协同CAD引擎
前端·javascript·架构
Highcharts.js15 分钟前
React 开发实战:如何使用 useEffect 为 Highcharts 注入实时数据
前端·javascript·react.js·开发实战·实时数据·highcharts·轮询数据
陆枫Larry17 分钟前
Vue Slot 到底在解决什么问题?
前端
梦想很大很大24 分钟前
让 AI 成为“报表配置员”:BI 低代码平台的 Schema 实践路径
前端·人工智能·低代码
用户0595401744634 分钟前
asyncio 踩坑实录:这个问题坑了我3小时,差点让线上服务崩掉
前端·css