程序员scholar 程序员scholar
首页
  • Java 基础

    • JavaSE
    • JavaIO
    • JavaAPI速查
  • Java 高级

    • JUC
    • JVM
    • Java新特性
    • 设计模式
  • Web 开发

    • Servlet
    • Java网络编程
  • Web 标准

    • HTML
    • CSS
    • JavaScript
  • 前端框架

    • Vue2
    • Vue3
    • 微信小程序
    • uni-app
  • 工具与库

    • jQuery
    • Ajax
    • Axios
    • Webpack
    • Vuex
    • WebSocket
    • 第三方登录
  • 后端与语言扩展

    • ES6
    • Typescript
    • node.js
  • Element-UI
  • Apache ECharts
  • 数据结构
  • HTTP协议
  • HTTPS协议
  • 计算机网络
  • Linux常用命令
  • Windows常用命令
  • SQL数据库

    • MySQL
    • MySQL速查
  • NoSQL数据库

    • Redis
    • ElasticSearch
  • 数据库

    • MyBatis
    • MyBatis-Plus
  • 消息中间件

    • RabbitMQ
  • 服务器

    • Nginx
  • Spring框架

    • Spring6
    • SpringMVC
    • SpringBoot
    • SpringSecurity
  • SpringCould微服务

    • SpringCloud基础
    • 微服务之DDD架构思想
  • 日常必备

    • 开发常用工具包
    • Hutoll工具包
    • IDEA常用配置
    • 开发笔记
    • 若依框架
    • 日常记录
    • 项目部署
    • 网站导航
    • 产品学习
    • 英语学习
  • 代码管理

    • Maven
    • Git教程
    • Git小乌龟教程
  • 运维工具

    • Docker
    • Jenkins
    • Kubernetes
  • 算法笔记

    • 算法思想
    • 刷题笔记
  • 面试问题常见

    • 十大经典排序算法
    • 面试常见问题集锦
关于
GitHub (opens new window)
首页
  • Java 基础

    • JavaSE
    • JavaIO
    • JavaAPI速查
  • Java 高级

    • JUC
    • JVM
    • Java新特性
    • 设计模式
  • Web 开发

    • Servlet
    • Java网络编程
  • Web 标准

    • HTML
    • CSS
    • JavaScript
  • 前端框架

    • Vue2
    • Vue3
    • 微信小程序
    • uni-app
  • 工具与库

    • jQuery
    • Ajax
    • Axios
    • Webpack
    • Vuex
    • WebSocket
    • 第三方登录
  • 后端与语言扩展

    • ES6
    • Typescript
    • node.js
  • Element-UI
  • Apache ECharts
  • 数据结构
  • HTTP协议
  • HTTPS协议
  • 计算机网络
  • Linux常用命令
  • Windows常用命令
  • SQL数据库

    • MySQL
    • MySQL速查
  • NoSQL数据库

    • Redis
    • ElasticSearch
  • 数据库

    • MyBatis
    • MyBatis-Plus
  • 消息中间件

    • RabbitMQ
  • 服务器

    • Nginx
  • Spring框架

    • Spring6
    • SpringMVC
    • SpringBoot
    • SpringSecurity
  • SpringCould微服务

    • SpringCloud基础
    • 微服务之DDD架构思想
  • 日常必备

    • 开发常用工具包
    • Hutoll工具包
    • IDEA常用配置
    • 开发笔记
    • 若依框架
    • 日常记录
    • 项目部署
    • 网站导航
    • 产品学习
    • 英语学习
  • 代码管理

    • Maven
    • Git教程
    • Git小乌龟教程
  • 运维工具

    • Docker
    • Jenkins
    • Kubernetes
  • 算法笔记

    • 算法思想
    • 刷题笔记
  • 面试问题常见

    • 十大经典排序算法
    • 面试常见问题集锦
关于
GitHub (opens new window)
npm

(进入注册为作者充电)

  • 快速入门

  • 后端手册

  • 前端手册

    • 前端通用方法
    • 前端开发规范
    • 前端请求流程
    • 前端路由使用
    • Vue 组件使用
    • 前端动态菜单
    • 前端权限控制
    • 前台菜单管理
    • 多级目录与路由
    • 前端页签缓存
    • 使用 Svg Icon 图标
    • 使用字典功能
    • 动态系统参数
    • Axios 封装
    • 切换访问路径
      • 一、修改 vue.config.js 中的 publicPath 属性
      • 二、修改 router/index.js 中的 base 属性
      • 三、修改 /index 路由中的子路径
        • 1. 修改 Navbar.vue 中的 location.href
        • 2. 修改 utils/request.js 中的 location.href
      • 四、修改 Nginx 配置
      • 五、验证配置
    • 内容复制功能
  • 组件文档

  • 数据库分析

  • 若依框架
  • 前端手册
scholar
2024-08-31
目录

切换访问路径

# 部署到子路径下的应用路径配置详解

在某些场景下,您可能需要将前端应用部署到一个子路径下,例如 https://www.ruoyi.vip/admin。为了确保应用在该子路径下能够正常运行并访问相关资源,需要进行一些配置修改。下面是详细的配置流程:

# 一、修改 vue.config.js 中的 publicPath 属性

publicPath 用于指定项目的基础路径。当应用部署在子路径下时,需要将 publicPath 设置为子路径。

// vue.config.js
module.exports = {
  publicPath: process.env.NODE_ENV === "production" ? "/admin/" : "/admin/",
  // 其他配置...
}
1
2
3
4
5
  • process.env.NODE_ENV === "production":当环境为生产环境时,publicPath 被设置为 /admin/。
  • 对于开发环境(通常是 npm run serve ),也需要设置为 /admin/ 以便与生产环境保持一致。

# 二、修改 router/index.js 中的 base 属性

在 Vue Router 中,base 属性用于指定应用的基本路径。此路径会被自动添加到所有路由路径的前面。

// src/router/index.js
import Vue from 'vue'
import Router from 'vue-router'
import constantRoutes from './routes'

Vue.use(Router)

export default new Router({
  base: "/admin", // 设置应用的基础路径
  mode: 'history', // 去掉URL中的#
  scrollBehavior: () => ({ y: 0 }),
  routes: constantRoutes
})
1
2
3
4
5
6
7
8
9
10
11
12
13
  • base: "/admin":确保所有路由都以 /admin 为基础路径。
  • mode: 'history':使用 HTML5 历史模式去掉 URL 中的 #。

# 三、修改 /index 路由中的子路径

确保应用在子路径下能够正确导航,需要修改导航中的路径。在此示例中,您需要在 Navbar.vue 和 request.js 中做相应的调整。

# 1. 修改 Navbar.vue 中的 location.href

修改导航栏组件中的路径,以便在导航时正确定位到子路径。

// src/layout/components/Navbar.vue
// 将导航地址设置为子路径下的首页
location.href = '/admin/index';
1
2
3

# 2. 修改 utils/request.js 中的 location.href

在处理请求错误时,可能会重定向到登录页或首页。需要确保这些重定向路径也包含子路径。

// src/utils/request.js
// 当发生错误时,确保重定向路径包含子路径
location.href = '/admin/index';
1
2
3

# 四、修改 Nginx 配置

为了确保前端应用在子路径下能够正确访问资源,需要在 Nginx 配置中为该子路径添加相应的配置。

# Nginx配置
location /admin {
    alias   /home/ruoyi/projects/ruoyi-ui; // 设置项目的实际路径
    try_files $uri $uri/ /admin/index.html; // 处理刷新时的路由问题
    index  index.html index.htm;
}
1
2
3
4
5
6
  • location /admin:指定应用的访问路径为 /admin。
  • alias:设置子路径的实际文件路径,即应用的根目录。
  • try_files $uri $uri/ /admin/index.html:解决刷新页面时路径问题,确保在路由刷新时仍能正确加载页面。

# 五、验证配置

配置完成后,打开浏览器,输入 https://www.ruoyi.vip/admin,确保能够正常访问并刷新页面。如果页面能够正常加载并刷新,表示配置成功。

编辑此页 (opens new window)
上次更新: 2024/12/28, 18:32:08
Axios 封装
内容复制功能

← Axios 封装 内容复制功能→

Theme by Vdoing | Copyright © 2019-2025 程序员scholar
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式