若依 从下载到成功运行及打包

官网:http://www.ruoyi.vip/ 

目录

一、下载并运行项目

二、关于 若依 接口地址配置

2.1 若依的跨域代理介绍 

2.2 配置跨域代理,调用后台接口

2.2.1 配置 后台 ip 地址

2.2.2 页面报“系统接口404”错误

三、打包配置

3.1 打包之后静态资源404

3.2 登录页登录成功之后 vue 版菜单点不开,报错:Error: Cannot find module ‘@/views/system/user/index’

3.3 登录之后跳转页面显示 404


一、下载并运行项目

        进入官网 → 点击“源码地址” → 点击“RuoYi-Vue前端分离版” → 复制Git地址(https://gitee.com/y_project/RuoYi-Vue.git)→ 新建文件夹,在该文件夹中打开Git小乌龟输入:git clone 地址

         下载完成之后,找到“ruoyi-ui”文件夹,进入“ruoyi-ui”文件夹,在该文件夹下下载依赖“npm install”,这一步建议在 VsCode 终端中进行,防止出错。接下来在VsCode 终端里输入“npm run dev”就能运行该项目了。

二、关于 若依 接口地址配置

        npm run dev 打开项目后,报接口404:

  

2.1 若依的跨域代理介绍 

         原因是项目配置的接口是 localhost上 的,本地没有这个接口,肯定会报404。调用后台接口,在本地运行需要修改配置。

        若依的接口配置采用的跨域代理,跟我们平时项目中做的跨域代理一样,也是在 根目录/vue.config.js 中配置。点击文件中注释的 detail 的链接就可以打开 vue.config.js配置文档。

vue.config.js 中配置属性具体的值 :DevServer | webpack 中文文档

  • devServer:跨域代理的相关配置
  • host:指定要使用的 host。如果你想让你的服务器可以被外部访问:host: '0.0.0.0'
  • port::指定监听请求的端口号
  • open:告诉 dev-server 在服务器已经启动后打开浏览器。设置其为 true 以打开你的默认浏览器。
  • proxy:关于devServer.proxy配置-【DevServer | webpack 中文文档】
    • 对照以下示例,就能明白 若依 中这个跨域代理是怎么回事:
    • pathRewrite:将 target 部分重写路径,即将 /api 替换成:target+pathRewrite中“^/api”的值,如上,请求接口地址变成了:http:AA.BB.CC.DD:端口//connect。
  • [process.env.VUE_APP_BASE_API]:这个值来自根目录下的 .env.development, .env.production, .env.staging 这 3 个文件,分别代表:开发环境、生产环境、预生产环境。
    • 如上分析,我们现在是在开发环境下打开的,仔细观察报404接口错误的地方,请求网址是:http://localhost:81/dev-api/getInfo ,其中“/dev-api”来自 .env.development 文件中设置的 VUE_APP_BASE_API 的值。
  • target:指向接口请求地址。

2.2 配置跨域代理,调用后台接口

2.2.1 配置 后台 ip 地址

         根据 2.1 中的介绍,要调用后台接口,我们只要将 target 的值修改为 后台 ip 地址和端口号。修改完成之后,需要重新启动项目npm run dev),接口请求地址才会改变。

        需要注意一个地方:后台如果是通过前端打包(npm run build:stage)过去部署到他们后台本地上的,那么他们访问的接口地址是:ip:端口号/stage-api/接口名称,而前端修改 target 后在本地访问后台接口的地址是:ip:端口号/dev-api/接口名称,仍然会造成接口 404。所以我们最好是将 .env.development, .env.production, .env.staging 这 3 个文件的 VUE_APP_BASE_API 的值统一改成 相同的值,我这里改成了“warehouse-qr”。

2.2.2 页面报“系统接口404”错误

  1. 页面显示空白,且报404:
    1. 如上,检查请求头是否有缓存,若有缓存,清除缓存并刷新。
  2. 页面显示,验证码空白,且报404:
    1. 此时还报404错误,确认一下接口地址是否正确。
    2. 如果后台能访问,但是前端404,那么问题就出在前端这,看下图ip访问地址:已经确认后台地址“ip:端口号/warehouse-qr/captchaImage”能访问,而此时我们在 vue.config.js 中的配置信息为:,就算我们在 .env.development.js 中配置了proxy的值“warehouse-qr”,也只是代表我们在前端接口中调用“warehouse-qr”,路径重定向到了 "后台ip地址:端口号",因为 pathRewrite 后面的值为:“”空字符串(具体可参照 2.1)。因此 这里还要给 pathRewrite 值设置一下:

三、打包配置

3.1 打包之后静态资源404

        这个与 vue.config.js 中的 publicPath 静态资源访问路径有关。

        原代码中配置的是绝对路径,如果不是部署到服务器的根目录下,那么静态资源会报404,将publicPath 在生产环境下的值改为“./”再重新打包就好了。publicPath: process.env.NODE_ENV === "production" ? "./" : "/",

3.2 登录页登录成功之后 vue 版菜单点不开,报错:Error: Cannot find module ‘@/views/system/user/index’

若依vue版菜单点不开 Error Cannot find module ‘@viewssystemuserindex‘_过的很好谢谢的博客-CSDN博客

        在开发环境,登录没什么问题,到了生产环境,登录进不去首页,还报上述错误。在 /src/store/modules/permission.js 文件中查找“loadview”:

        将上面 import 实现生产环境的路由懒加载改为“return (resolve) => require([`@/views/${view}`], resolve)”,如下图:

3.3 登录之后跳转页面显示 404

账户登录之后跳转页面直接显示404,为什么? · Issue #I3RMTB · 若依/RuoYi-Cloud - Gitee.com

        将路由模式改成“hash”模式,如果不想要hash模式,history模式后台要进行配置,具体查看以上链接。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/362352.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

uniAPP小程序 子组件使用watch不生效,H5正常,小程序不正常(其实是子组件model选项的问题)

第一次用 uniapp 写小程序,还是遇到挺多问题的。写了一个下拉多选组件,发现同样的代码,在H5上运行效果正常,在小程序上压根不走 watch 。 uniapp官网:【全局配置 | uni-app官网】 看文档 watch 是支持H5、小程序的&…

jQuery EasyUI/TopJUI创建日期时间输入框

jQuery EasyUI/TopJUI创建日期时间输入框 日期时间输入框组件 HTML 和日期输入框类似&#xff0c;日期时间输入框允许用户选择日期和指定的时间并按照指定的输出格式显示。相比日期输入框&#xff0c;它在下拉面板中添加了一个时间微调器。 <div class"topjui-containe…

table 设置边框

本文引自&#xff1a;https://www.cnblogs.com/leona-d/p/6125896.html 示例代码&#xff1a; <!DOCTYPE html><html lang"zh"><head><meta charset"UTF-8" /><meta name"viewport" content"widthdevice-width…

uniapp小程序 设置自定义导航栏

如下截图&#xff0c;通过 wx.getSystemInfoSync 计算得到的整个导航栏高度&#xff0c;其实是有3个部分的&#xff1a; 黄色&#xff1a;状态栏高度&#xff0c;uniapp文档中有给出&#xff1b;红色&#xff1a;胶囊高度&#xff0c;可以计算得出&#xff1b;绿色&#xff1a;…

Akka Notes –演员记录和测试

在前两部分&#xff08; 一 &#xff0c; 二 &#xff09;中&#xff0c;我们简要讨论了Actor以及消息传递的工作方式。 在这一部分中&#xff0c;让我们看一下如何修复并记录我们的TeacherActor 。 概括 这就是我们上一部分中的Actor的样子&#xff1a; class TeacherActor …

vue笔记(二)Vue-class与style、事件、计算属性、数据监听、指令+自定义指令、过滤器

vue官网 一 、class、style操作 二、事件 三、计算属性 四、数据监听、观测 五、指令自定义指令 六、过滤器 一 、class、style操作 官网 1. class使用&#xff1a; &#xff08;1&#xff09;v-bind:class“数据|属性|变量|表达式” &#xff08;2&#xff09;v-bind:class“…

Nsum问题

题目 题解 暴力法 class Solution:def fourSum(self, nums: List[int], target: int) -> List[List[int]]:if len(nums) < 4:return []nums.sort()N len(nums)res []for i in range(N-3):for j in range(i1, N-2):for k in range(j1, N-1):for m in range(k1, N):tmp…

js笔记(一)js基础、程序结构、函数

大标题小节一、js 基础1. javascript的组成&#xff1b;2. 运行js&#xff1b;3. 打印信息&#xff1b;4. 关键字var&#xff1b;5. js中的数据类型&#xff1b;6. NaN&#xff08;not a number&#xff09;&#xff1b;7. js运算符&#xff1b;8. 数据类型转换&#xff1b;9. …

DB2 9 底子(730 考试)认证指南,第 3 局部: 拜访 DB2 数据(3)

建树第一个数据库First Steps在 DB2 的安顿进程中&#xff0c;会表示 First Steps 面板&#xff0c;它答运用户生成要操作的示例数据库&#xff1a; 选择 Database Creation 选项将表示一个附加菜单&#xff0c;可以建树 SAMPLE 数据库。 大大都用户希冀建树 SAMPLE 数据库并运…

新的自定义控件:TaskProgressView

我已经编写了一个新的自定义控件&#xff0c;并将其提交到ControlsFX项目。 这是一个高度专业的控件&#xff0c;用于显示后台任务&#xff0c;其当前状态和进度的列表。 这实际上是我为ControlsFX编写的第一个控件&#xff0c;只是出于乐趣的考虑&#xff0c;这意味着我自己没…

js笔记(三)ES5、ES5新增的数组的方法、字符串的方法、字符编码、对象的序列化和反序列化、bind

数组方法、字符串方法总结 大目录小目录一、ES5严格模式1. 严格模式&#xff1b;2. 严格模式的行为变更&#xff1b;二、ES5新增的数组的方法1. 判断是否为数组&#xff1a;Array.isArray()&#xff1b;2. 判断数组中是否存在某个值&#xff1a;indexOf(data, start)、lastInd…

SVG入门

1、简介 使用xml描述的矢量文件。 2、兼容性 https://caniuse.com/#searchsvg 3、使用方式 &#xff08;1&#xff09;浏览器直接打开 &#xff08;2&#xff09;html中使用img引用 <p><img src"simple.svg" width"50" height"50"…

js 值和引用

1、概述 简单值&#xff08;基本类型&#xff09;通过值复制的方式来赋值/传递。 复合值&#xff08;对象&#xff09;通过引用复制的方式来赋值/传递。 <!DOCTYPE html><html lang"zh"><head><meta charset"UTF-8" /><title…

js笔记(六)事件、正则

数组方法、字符串方法总结 大标题小节一、事件1.1 事件&#xff1b;1.2 事件对象&#xff1b;1.3 键盘事件的keyCode&#xff1b;1.4 关于鼠标的尺寸&#xff1b;1.5 事件冒泡&#xff1b;1.6 事件的默认行为&#xff1b;1.7 事件监听&#xff1b;1.8 事件委托&#xff08;事件…

神州泰岳2050万元收买并增资奇点国际

网易科技讯 3月7日消息&#xff0c;神州泰岳来日诰日颁布发表关照公告&#xff0c;将经由股权让渡体例共付出1450万元股权让渡款获得奇点国际100%股权&#xff0c;同时神州泰岳与邵起明分别出资600万元、200万元对奇点国际举行增资。本次增资后&#xff0c;奇点国际注册资金增进…

拯救你丢失的精度——BigInteger和BigDecimal类(入门)

第三阶段 JAVA常见对象的学习 BigInteger和BigDecimal类 BigInteger类 (一) 构造方法&#xff1a; //针对超过整数范围的运算(整数最大值&#xff1a;2147483647) BigInteger(String val) (二) 常用方法&#xff1a; //加 public BigInteger add(BigInteger val) //减 public…

vue笔记(四)注册组件,路由,vuex

官网 一、项目中的组件注册 二、路由 三、vuex 一、项目中的组件注册 1. 全局 import Loading from /components/loading;//封装的loading组件 Vue.component(Loading,Loading);2. 局部 <loading/>important loading from ./components/loadingcomponents:{loading}二…

#102030:在30天内运行20 10K,庆祝Java 20年

1995年5月23日是技术史上的重要时刻。 业界似乎并没有意识到当天发布的语言会在未来几年内完全改变技术的格局。 Java将在今年的同一天庆祝20岁生日。 Java 20年&#xff0c;哇&#xff01; 回顾20年前的存储器时代&#xff0c;思考一下Java的发明时间/方式。 万维网专用于精…

vue笔记(一)基本使用、数据检测

vue 官网 Vue (读音 /vjuː/&#xff0c;类似于 view) 是一套用于构建用户界面的渐进式框架。与其它大型框架不同的是&#xff0c;Vue 被设计为可以自底向上逐层应用。 一、基本使用 二、数据检测 一、Vue的思想 MVC【参考 nd的博客园】&#xff1a; 名称描述M&#xff08;…

js笔记(二)数组、对象、this

大标题小节一、数组1. 数组的创建、赋值、分类&#xff1b;2. 数组的简单操作&#xff08;根据索引增、查、改&#xff09;&#xff1b;3. 声明式和构造函数创建的数组的区别&#xff1b;4.数组的方法&#xff1a;push()、unshift()、splice()、pop()、shift()、slice()、sort(…