• 修改RuoYi部署路径 适配nginx子路径访问


    1 官方参考

    若依官方文档提供了一种解决方式:前端手册 | RuoYi

     若依文档给的已经很明白了,但如果子路径 /admin 发生改变,修改起来就感觉比较费事了,毕竟要修改4个文件。

    这里咱们把子路径抽取出来,放到环境配置文件.env.development.env.production,

    这样如果子路径发生改变,咱们只需要修改一处即可

    2 修改步骤

    1、在配置文件.env.development中定义一个子路径参数为 /subpath

    1. # 部署后的子路径,对应nginx映射路径
    2. VUE_APP_SUB_PATH = '/subpath'

    2、修改vue.config.js中publicPath的值

    publicPath: process.env.VUE_APP_SUB_PATH,

    3、修改router/index.js,添加一行base属性

    1. export default new Router({
    2. base: process.env.VUE_APP_SUB_PATH,
    3. mode: 'history', // 去掉url中的#
    4. scrollBehavior: () => ({ y: 0 }),
    5. routes: constantRoutes
    6. })

    4、修改layout/components/Navbar.vue中的location.href

    location.href = process.env.VUE_APP_SUB_PATH

    由于在router/index.js中空值和/index对应同一个路由,这里为了适配子路径为"/"的情况,所以后边不用加/index

    5、修改utils/request.js中的location.href

    location.href = process.env.VUE_APP_SUB_PATH //+ '/index'

    6、nginx的配置

    1. location /subpath {
    2. alias /home/ruoyi/projects/ruoyi-ui;
    3. try_files $uri $uri/ /subpath/index.html;
    4. index index.html index.htm;
    5. }

    这里有两点需要注意:

            1、nginx配置中是alias而不是root;

            2、 try_files $uri $uri/ /subpath/index.html; “/subpath”要在这里写一次,否则部署后无法刷新。

    通过以上的配置,在部署过程中,如果nginx子路径改变,前端代码只需要更改配置文件中 VUE_APP_SUB_PATH = '/subpath'的值即可。

  • 相关阅读:
    Zabbix监控入门到跑路
    Racecar 基于ROS通信机制的多点导航实验
    linux分区扩容
    mybatis-plus使用
    java反射
    867. 分解质因数(最强时间复杂度,O(sqrt(N)))
    算法自学__树链剖分
    防重复操作的一种实现
    Web安全与攻防
    #FFFFFF
  • 原文地址:https://blog.csdn.net/qq_30307645/article/details/133859201