当前位置: 首页 > news >正文

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这个问题:

前提:在这里需要明白两个问题:模式和环境变量的问题

模式有两种:historyhash

当下场景:在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就全部都解决了

但是对于在项目中代理问题还有很多.

例如:在打包项目之后,项目出现了空白页,如何解决?为什么出现空白页?

补充: 路由模式:historyhash模式

history模式之下,全部默认操作下,进行打包项目,打包完成之后,打开项目之后,啥也没有,右击查看源代码,会发现引入路径,是这样写的:

> 外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

这个路径引入是不对的 ,这就是导致项目是空白页的根本原因,解决办法是将其变成相对路径 ==> ./

如何去修改这个路径呢?

vue-cli中有一个关于这样的内容:

在这里插入图片描述

要想解决这个问题,解决办法如下:

vue.config.js中我们添加

module.exports = {publicPath:'./'
}

再次打包之后,引入的路径是对了,也出现了部分内容,解决了部分内容.

这时候就得说一下关于路由模式的问题了:historyhash模式.

如果是在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++代码分享

一&#xff0c;声明 被人水平有限&#xff0c;开源只是为了分享。勿喷&#xff01;&#xff01;&#xff01;还请大佬指点。 二&#xff0c;代码 // --------------------------------------------------------- 头文件 ----------------------------------------------- #in…...

CSS3——3. 书写格式二

<!DOCTYPE html> <html><head><meta charset"UTF-8"><title></title></head><body><!--css书写&#xff1a;--><!--1. 属性名:属性值--><!--2.属性值是对属性的相关描述--><!--3.属性名必须是…...

PHP语言的计算机基础

计算机基础与PHP语言入门 在当今信息技术高速发展的时代&#xff0c;计算机已经成为我们日常生活中不可或缺的重要工具。学习计算机基础知识&#xff0c;不仅能增强我们对信息技术的理解&#xff0c;还会为我们后续学习编程语言打下良好的基础。本文将以PHP语言为切入点&#…...

第 23 章 JSON

第 23 章 JSON 23.1 语法 JSON 语法支持表示 3 种类型的值。 ❑ 简单值&#xff1a;字符串、数值、布尔值和 null 可以在 JSON 中出现&#xff0c;就像在 JavaScript 中一样。特殊值 undefined 不可以。 ❑ 对象&#xff1a;第一种复杂数据类型&#xff0c;对象表示有序键/值…...

Java 正则表达式入门与应用(详细版)

正则表达式&#xff08;Regular Expression&#xff0c;简称Regex&#xff09;是一种文本模式匹配工具&#xff0c;在许多编程语言中都得到了广泛应用。Java 作为一种强大的编程语言&#xff0c;提供了对正则表达式的内建支持&#xff0c;使得在字符串处理、数据验证和文本解析…...

洛谷:P1540 [NOIP2010 提高组] 机器翻译

[NOIP2010 提高组] 机器翻译 题目背景 NOIP2010 提高组 T1 题目描述 小晨的电脑上安装了一个机器翻译软件&#xff0c;他经常用这个软件来翻译英语文章。 这个翻译软件的原理很简单&#xff0c;它只是从头到尾&#xff0c;依次将每个英文单词用对应的中文含义来替换。对于…...

基于AT89C51单片机的可暂停八路抢答器设计

点击链接获取Keil源码与Project Backups仿真图&#xff1a; https://download.csdn.net/download/qq_64505944/90196607?spm1001.2014.3001.5503 C15 部分参考设计如下&#xff1a; 摘要 随着社会进步和科技发展&#xff0c;电子设备在各类活动中的应用日益普遍&#xff0c…...

面试题解,Java中的“对象”剖析

一、说一说JVM中对象的内存布局&#xff1f;new一个对象到底占多大内存&#xff1f; 话不多说&#xff0c;看下图&#xff0c;对象的内存布局图 一个对象的内存布局主要由三部分组成&#xff1a;对象头&#xff08;Object Header&#xff09;、实例数据&#xff08;Instance D…...

行为模式3.迭代器模式

行为型模式 模板方法模式&#xff08;Template Method Pattern&#xff09;命令模式&#xff08;Command Pattern&#xff09;迭代器模式&#xff08;Iterator Pattern&#xff09;观察者模式&#xff08;Observer Pattern&#xff09;中介者模式&#xff08;Mediator Pattern…...

第8章 DMA控制器

DMA的基本概念 DMA是用硬件实现不再通过CPU的&#xff0c;计算机内存储器与I/O设备之间的直接数据传送技术。该硬件称为DMA控制器&#xff08;简称DMAC)&#xff0c;用来控制数据的输入和输出&#xff0c;复杂性堪比CPU。 DMA方式可实现: 数据存储器RAM→I/O端口的DMA读传送I/O…...

后端java开发路由接口并部署服务器(四)

一、安装IntelliJ IDEA&#xff0c;安装包下载 1、官网下载 2、网盘资源 安装包下载完成后进行傻瓜式下一步安装就可以了 打开IntelliJ IDEA&#xff0c;输入网盘资源文件内容 三、汉化处理 插件搜索chinese&#xff0c;就会找到相应的插件安装重启软件即可 四、新建后端j…...

检索增强生成 和思维链 结合: 如何创建检索增强思维链 (RAT)?

论文地址&#xff1a;https://arxiv.org/pdf/2403.05313 Github地址&#xff1a;https://github.com/CraftJarvis/RAT 想象一下&#xff0c;一个人工智能助手可以像莎士比亚一样写作&#xff0c;像专家一样推理。这听起来很了不起&#xff0c;对吧&#xff1f;但是&#xff0…...

在 SQL 中,区分 聚合列 和 非聚合列(nonaggregated column)

文章目录 1. 什么是聚合列&#xff1f;2. 什么是非聚合列&#xff1f;3. 在 GROUP BY 查询中的非聚合列问题示例解决方案 4. 为什么 only_full_group_by 要求非聚合列出现在 GROUP BY 中&#xff1f;5. 如何判断一个列是聚合列还是非聚合列&#xff1f;6. 总结 在 SQL 中&#…...

单元测试3.0+ @RunWith(JMockit.class)+mock+injectable+Expectations

Jmockit使用笔记_基本功能使用Tested_Injectable_Mocked_Expectations_jmockit.class-CSDN博客 静态变量直接赋值就好&#xff0c;没必要mock了 测试框架Jmockit集合junit使用 RunWith(JMockit.class) 写在测试案例类上的注解 Tested 在测试案例中,写在我们要测试的类上…...

STM32第十一课:STM32-基于标准库的42步进电机的简单IO控制(附电机教程,看到即赚到)

一&#xff1a;步进电机简介 步进电机又称为脉冲电机&#xff0c;简而言之&#xff0c;就是一步一步前进的电机。基于最基本的电磁铁原理,它是一种可以自由回转的电磁铁,其动作原理是依靠气隙磁导的变化来产生电磁转矩&#xff0c;步进电机的角位移量与输入的脉冲个数严格成正…...

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中的线程模型一对一模型多对一模型多对多模型 线程实现原理线程的状态新建状态&#xff08;New&#xff09;就绪状态&#xff08;Runnable&#xff09;运行状态&#xff08;Running&#xff09;阻塞状态&#xff08;Blocked&#xff09;死亡状态&#…...

在Lua中,Metatable元表如何操作?

Lua中的Metatable&#xff08;元表&#xff09;是一个强大的特性&#xff0c;它允许我们改变表&#xff08;table&#xff09;的行为。下面是对Lua中的Metatable元表的详细介绍&#xff0c;包括语法规则和示例。 1.Metatable介绍 Metatable是一个普通的Lua表&#xff0c;它用于…...

手游刚开服就被攻击怎么办?如何防御DDoS?

开服初期是手游最脆弱的阶段&#xff0c;极易成为DDoS攻击的目标。一旦遭遇攻击&#xff0c;可能导致服务器瘫痪、玩家流失&#xff0c;甚至造成巨大经济损失。本文为开发者提供一套简洁有效的应急与防御方案&#xff0c;帮助快速应对并构建长期防护体系。 一、遭遇攻击的紧急应…...

ssc377d修改flash分区大小

1、flash的分区默认分配16M、 / # df -h Filesystem Size Used Available Use% Mounted on /dev/root 1.9M 1.9M 0 100% / /dev/mtdblock4 3.0M...

java调用dll出现unsatisfiedLinkError以及JNA和JNI的区别

UnsatisfiedLinkError 在对接硬件设备中&#xff0c;我们会遇到使用 java 调用 dll文件 的情况&#xff0c;此时大概率出现UnsatisfiedLinkError链接错误&#xff0c;原因可能有如下几种 类名错误包名错误方法名参数错误使用 JNI 协议调用&#xff0c;结果 dll 未实现 JNI 协…...

关于iview组件中使用 table , 绑定序号分页后序号从1开始的解决方案

问题描述&#xff1a;iview使用table 中type: "index",分页之后 &#xff0c;索引还是从1开始&#xff0c;试过绑定后台返回数据的id, 这种方法可行&#xff0c;就是后台返回数据的每个页面id都不完全是按照从1开始的升序&#xff0c;因此百度了下&#xff0c;找到了…...

【ROS】Nav2源码之nav2_behavior_tree-行为树节点列表

1、行为树节点分类 在 Nav2(Navigation2)的行为树框架中,行为树节点插件按照功能分为 Action(动作节点)、Condition(条件节点)、Control(控制节点) 和 Decorator(装饰节点) 四类。 1.1 动作节点 Action 执行具体的机器人操作或任务,直接与硬件、传感器或外部系统…...

【Zephyr 系列 10】实战项目:打造一个蓝牙传感器终端 + 网关系统(完整架构与全栈实现)

🧠关键词:Zephyr、BLE、终端、网关、广播、连接、传感器、数据采集、低功耗、系统集成 📌目标读者:希望基于 Zephyr 构建 BLE 系统架构、实现终端与网关协作、具备产品交付能力的开发者 📊篇幅字数:约 5200 字 ✨ 项目总览 在物联网实际项目中,**“终端 + 网关”**是…...

C++.OpenGL (10/64)基础光照(Basic Lighting)

基础光照(Basic Lighting) 冯氏光照模型(Phong Lighting Model) #mermaid-svg-GLdskXwWINxNGHso {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-GLdskXwWINxNGHso .error-icon{fill:#552222;}#mermaid-svg-GLd…...

AI书签管理工具开发全记录(十九):嵌入资源处理

1.前言 &#x1f4dd; 在上一篇文章中&#xff0c;我们完成了书签的导入导出功能。本篇文章我们研究如何处理嵌入资源&#xff0c;方便后续将资源打包到一个可执行文件中。 2.embed介绍 &#x1f3af; Go 1.16 引入了革命性的 embed 包&#xff0c;彻底改变了静态资源管理的…...

Web 架构之 CDN 加速原理与落地实践

文章目录 一、思维导图二、正文内容&#xff08;一&#xff09;CDN 基础概念1. 定义2. 组成部分 &#xff08;二&#xff09;CDN 加速原理1. 请求路由2. 内容缓存3. 内容更新 &#xff08;三&#xff09;CDN 落地实践1. 选择 CDN 服务商2. 配置 CDN3. 集成到 Web 架构 &#xf…...

Windows安装Miniconda

一、下载 https://www.anaconda.com/download/success 二、安装 三、配置镜像源 Anaconda/Miniconda pip 配置清华镜像源_anaconda配置清华源-CSDN博客 四、常用操作命令 Anaconda/Miniconda 基本操作命令_miniconda创建环境命令-CSDN博客...