vue代理问题
vue代理问题
场景:前后端分离项目问题,在前端中请求接口,返回数据这个过程,但是在这个过程中,前端会有两个环境,一个是开发环境,一个是生产环境.
在开发环境中请求接口可能会遇到跨域问题,比如请求的端口是3000,当前端口是8080,这时候就会遇到跨域问题,或者ip不同,也会存在跨域问题,解决跨域问题一般有两种,一种是前端解决,一种是后端解决,任意一方解决这个问题,另一方就不用操作了
前端如何解决跨域问题呢?
在通过
vue-cli创建的vue项目中,解决跨域问题是通过代理的设置.场景:
前端项目:
localhost:8080后台项目:localhost:3000现在我们在前台请求后台接口的时候就产生跨域问题了, 这时候如果你将后端这个
localhost:3000直接放在接口请求中,一定会报错. 这就是遇到了跨域问题.这时候可以在我们的
vue项目中建一个vue.config.js文件,在这个文件中做一个服务器代理module.exports = {devServer:{proxy:'http://localhost:3000'} }在请求中就不需要加
localhost:3000,这时候在开发环境中就可以正常请求接口内容了.
但是现在如果我这样操作之后,对项目进行打包,其实也是不对的,打包之后的项目,在控制台中对于刚刚代理的地址会进行报错:

会将代理内容变成==>file://home
如何解决file://home这个问题:
前提:在这里需要明白两个问题:模式和环境变量的问题
模式有两种:
history和hash当下场景:在
hash模式下,当我们在config中完成代理,以及默认路径之后,打包之后的项目是正常呈现的,但是在控制台依旧会有file://home环境有两种:开发环境
.env.development文件和生产环境env.production文件 <===存在与项目的根目录下解决办法:创建两个文件
.env.development:VUE_APP_TITLE = '项目名称' VUE_APP_ENV = 'dev' VUE_APP_BASE_API = 'http://localhost:300/'
env.production:VUE_APP_TITLE = '项目名称' VUE_APP_ENV = 'pro' VUE_APP_BASE_API = 'http://localhost:300/'补充:
1.在获取开发环境或者生产环境的内容时:通过
process.env.VUE_APP_BASE_API新建这两个文件之后,项目会自动识别,当前是生产环境还是开发环境,当我生产环境的时候,
process.env.VUE_APP_BASE_API取到的就是.env.production的内容,当在开发环境中,渠道就是.env.development文件的内容2.axios的二次封装:
首先 :
npm install axios然后:创建axios封装模块
在src目录下,创建一个
utils文件夹,然后在其中创建一个http.js文件,用来进行axios的二次封装import axios from 'axios'; export default{$axios( options ){let apiUrl = nullif( process.env.VUE_APP_BASE_API === 'dev' ){apiUrl = options.url}else{apiUrl = process.env.VUE_APP_BASE_API + options.url}return axios({url:optins.url})} }完成这些操作之后,后端在进行一个跨域,对于在开发环境和生产环境下,
file:home就全部都解决了
但是对于在项目中代理问题还有很多.
例如:在打包项目之后,项目出现了空白页,如何解决?为什么出现空白页?
补充: 路由模式:
history和hash模式在
history模式之下,全部默认操作下,进行打包项目,打包完成之后,打开项目之后,啥也没有,右击查看源代码,会发现引入路径,是这样写的:

这个路径引入是不对的 ,这就是导致项目是空白页的根本原因,解决办法是将其变成相对路径 ==>
./如何去修改这个路径呢?
在
vue-cli中有一个关于这样的内容:
要想解决这个问题,解决办法如下:
在
vue.config.js中我们添加module.exports = {publicPath:'./' }再次打包之后,引入的路径是对了,也出现了部分内容,解决了部分内容.
这时候就得说一下关于路由模式的问题了:
history和hash模式.如果是在hash模式之下呢,以上的这些操作之后,项目打包之后,已经完全正常了.
但是在history模式之下,以上操作,只能操作部分内容.对于这个问题要如何解决呢? 告诉后端,做一个重定向就好了.
相关文章:
vue代理问题
vue代理问题 场景:前后端分离项目问题,在前端中请求接口,返回数据这个过程,但是在这个过程中,前端会有两个环境,一个是开发环境,一个是生产环境. 在开发环境中请求接口可能会遇到跨域问题,比如请求的端口是3000,当前端口是8080,这时候就会遇到跨域问题,或者ip不同,也会存在跨…...
Git快速入门(三)·远程仓库GitHub以及Gitee的使用
目录 1. 远程仓库GitHub 1.1 登录 1.2 创建库 1.3 创建文件 1.4 修改文件 1.5 创建分支 1.6 删除库 1.7 将远程仓库下载到本地 1.7.1 关联登录 1.7.2 克隆 1.7.3 通过GitHub Desktop更改远程库 2. 远程仓库Gitee 2.1 登录 2.2 创建文件 2.3 关联…...
[开源]C++代码分享
一,声明 被人水平有限,开源只是为了分享。勿喷!!!还请大佬指点。 二,代码 // --------------------------------------------------------- 头文件 ----------------------------------------------- #in…...
CSS3——3. 书写格式二
<!DOCTYPE html> <html><head><meta charset"UTF-8"><title></title></head><body><!--css书写:--><!--1. 属性名:属性值--><!--2.属性值是对属性的相关描述--><!--3.属性名必须是…...
PHP语言的计算机基础
计算机基础与PHP语言入门 在当今信息技术高速发展的时代,计算机已经成为我们日常生活中不可或缺的重要工具。学习计算机基础知识,不仅能增强我们对信息技术的理解,还会为我们后续学习编程语言打下良好的基础。本文将以PHP语言为切入点&#…...
第 23 章 JSON
第 23 章 JSON 23.1 语法 JSON 语法支持表示 3 种类型的值。 ❑ 简单值:字符串、数值、布尔值和 null 可以在 JSON 中出现,就像在 JavaScript 中一样。特殊值 undefined 不可以。 ❑ 对象:第一种复杂数据类型,对象表示有序键/值…...
Java 正则表达式入门与应用(详细版)
正则表达式(Regular Expression,简称Regex)是一种文本模式匹配工具,在许多编程语言中都得到了广泛应用。Java 作为一种强大的编程语言,提供了对正则表达式的内建支持,使得在字符串处理、数据验证和文本解析…...
洛谷:P1540 [NOIP2010 提高组] 机器翻译
[NOIP2010 提高组] 机器翻译 题目背景 NOIP2010 提高组 T1 题目描述 小晨的电脑上安装了一个机器翻译软件,他经常用这个软件来翻译英语文章。 这个翻译软件的原理很简单,它只是从头到尾,依次将每个英文单词用对应的中文含义来替换。对于…...
基于AT89C51单片机的可暂停八路抢答器设计
点击链接获取Keil源码与Project Backups仿真图: https://download.csdn.net/download/qq_64505944/90196607?spm1001.2014.3001.5503 C15 部分参考设计如下: 摘要 随着社会进步和科技发展,电子设备在各类活动中的应用日益普遍,…...
面试题解,Java中的“对象”剖析
一、说一说JVM中对象的内存布局?new一个对象到底占多大内存? 话不多说,看下图,对象的内存布局图 一个对象的内存布局主要由三部分组成:对象头(Object Header)、实例数据(Instance D…...
行为模式3.迭代器模式
行为型模式 模板方法模式(Template Method Pattern)命令模式(Command Pattern)迭代器模式(Iterator Pattern)观察者模式(Observer Pattern)中介者模式(Mediator Pattern…...
第8章 DMA控制器
DMA的基本概念 DMA是用硬件实现不再通过CPU的,计算机内存储器与I/O设备之间的直接数据传送技术。该硬件称为DMA控制器(简称DMAC),用来控制数据的输入和输出,复杂性堪比CPU。 DMA方式可实现: 数据存储器RAM→I/O端口的DMA读传送I/O…...
后端java开发路由接口并部署服务器(四)
一、安装IntelliJ IDEA,安装包下载 1、官网下载 2、网盘资源 安装包下载完成后进行傻瓜式下一步安装就可以了 打开IntelliJ IDEA,输入网盘资源文件内容 三、汉化处理 插件搜索chinese,就会找到相应的插件安装重启软件即可 四、新建后端j…...
检索增强生成 和思维链 结合: 如何创建检索增强思维链 (RAT)?
论文地址:https://arxiv.org/pdf/2403.05313 Github地址:https://github.com/CraftJarvis/RAT 想象一下,一个人工智能助手可以像莎士比亚一样写作,像专家一样推理。这听起来很了不起,对吧?但是࿰…...
在 SQL 中,区分 聚合列 和 非聚合列(nonaggregated column)
文章目录 1. 什么是聚合列?2. 什么是非聚合列?3. 在 GROUP BY 查询中的非聚合列问题示例解决方案 4. 为什么 only_full_group_by 要求非聚合列出现在 GROUP BY 中?5. 如何判断一个列是聚合列还是非聚合列?6. 总结 在 SQL 中&#…...
单元测试3.0+ @RunWith(JMockit.class)+mock+injectable+Expectations
Jmockit使用笔记_基本功能使用Tested_Injectable_Mocked_Expectations_jmockit.class-CSDN博客 静态变量直接赋值就好,没必要mock了 测试框架Jmockit集合junit使用 RunWith(JMockit.class) 写在测试案例类上的注解 Tested 在测试案例中,写在我们要测试的类上…...
STM32第十一课:STM32-基于标准库的42步进电机的简单IO控制(附电机教程,看到即赚到)
一:步进电机简介 步进电机又称为脉冲电机,简而言之,就是一步一步前进的电机。基于最基本的电磁铁原理,它是一种可以自由回转的电磁铁,其动作原理是依靠气隙磁导的变化来产生电磁转矩,步进电机的角位移量与输入的脉冲个数严格成正…...
MotionCtrl: A Unified and Flexible Motion Controller for Video Generation 论文解读
目录 一、概述 二、相关工作 三、前置知识 1、LVDM Introduction 2、LVDM Method 3、LVDM for Short Video Generation 4、Hierarchical LVDM for Long Video Generation 5、训练细节 6、推理过程 四、MotionCtrl 1、CMCM 2、OMCM 3、训练策略 五、实验 一、概述…...
LINUX线程操作
文章目录 线程的定义LINUX中的线程模型一对一模型多对一模型多对多模型 线程实现原理线程的状态新建状态(New)就绪状态(Runnable)运行状态(Running)阻塞状态(Blocked)死亡状态&#…...
在Lua中,Metatable元表如何操作?
Lua中的Metatable(元表)是一个强大的特性,它允许我们改变表(table)的行为。下面是对Lua中的Metatable元表的详细介绍,包括语法规则和示例。 1.Metatable介绍 Metatable是一个普通的Lua表,它用于…...
Python OCR实战:手把手教你解决pytesseract的TesseractError,搞定chi_sim.traineddata缺失问题
Python OCR实战:彻底解决chi_sim.traineddata缺失的终极指南 当你第一次尝试用Python的pytesseract库识别中文文本时,那个刺眼的红色报错信息很可能让你措手不及。别担心,这不是你代码的问题,而是大多数新手都会遇到的经典障碍。…...
Flax过滤器系统终极指南:如何实现灵活的变量选择机制
Flax过滤器系统终极指南:如何实现灵活的变量选择机制 【免费下载链接】flax Flax is a neural network library for JAX that is designed for flexibility. 项目地址: https://gitcode.com/GitHub_Trending/fl/flax Flax NNX的过滤器系统是神经网络编程中的…...
技术赋能B端拓客:号码核验行业的革新与实践,氪迹科技法人号码核验系统,阶梯式价格
2026年,随着B端市场竞争的持续加剧,“精准获客、降本增效”已从行业口号转变为企业生存发展的核心诉求,号码核验作为B端拓客全流程的前置关键环节,其服务质量直接决定了拓客效率、人力效能与投入回报比,成为影响企业拓…...
SQL视图实战:5个真实业务场景下的数据视图应用案例(附代码)
SQL视图实战:5个真实业务场景下的数据视图应用案例(附代码) 在数据驱动的业务环境中,SQL视图(View)就像给数据库操作装上了"快捷方式"按钮。想象一下,当市场部门需要实时销售数据时&a…...
告别窗口混乱:Loop如何让macOS窗口管理效率提升300%
告别窗口混乱:Loop如何让macOS窗口管理效率提升300% 【免费下载链接】Loop MacOS窗口管理 项目地址: https://gitcode.com/GitHub_Trending/lo/Loop 痛点场景:被窗口吞噬的工作效率 产品经理陈默的桌面上永远摊着至少7个窗口:左侧是S…...
Display Driver Uninstaller深度使用指南:从问题诊断到系统优化
Display Driver Uninstaller深度使用指南:从问题诊断到系统优化 【免费下载链接】display-drivers-uninstaller Display Driver Uninstaller (DDU) a driver removal utility / cleaner utility 项目地址: https://gitcode.com/gh_mirrors/di/display-drivers-uni…...
GJK碰撞检测算法:从原理到实战的5个核心技巧
GJK碰撞检测算法:从原理到实战的5个核心技巧 【免费下载链接】gjk.c Gilbert-Johnson-Keerthi (GJK) collision detection algorithm in 200 lines of clean plain C 项目地址: https://gitcode.com/gh_mirrors/gj/gjk.c GJK碰撞检测算法是游戏开发和物理引擎…...
轻量模型不轻量:Nano-Banana Turbo LoRA在A10显卡上30秒出图实测
轻量模型不轻量:Nano-Banana Turbo LoRA在A10显卡上30秒出图实测 1. 项目简介 Nano-Banana是一款专门为产品拆解和平铺展示风格设计的轻量化文生图系统。这个项目的核心在于深度融合了专属的Turbo LoRA微调权重,专门针对Knolling平铺、爆炸图、产品部件…...
Qwen3.5-27B部署教程(Docker进阶):自定义模型路径、挂载外部存储与日志卷
Qwen3.5-27B部署教程(Docker进阶):自定义模型路径、挂载外部存储与日志卷 1. 环境准备与快速部署 在开始之前,请确保您的系统满足以下要求: 硬件要求:至少4张RTX 4090 D 24GB显卡软件要求:已…...
Whisper-large-v3开源大模型部署教程:无需Docker,纯Python一键启动方案
Whisper-large-v3开源大模型部署教程:无需Docker,纯Python一键启动方案 本文由113小贝基于Whisper-large-v3语音识别模型二次开发构建 1. 项目概述 今天要给大家介绍一个超级实用的语音识别工具——基于OpenAI Whisper Large v3的多语言语音识别Web服务…...
