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

四平网站设计公司杭州百度百科

四平网站设计公司,杭州百度百科,代做网站在哪找活,六安开发区网站vue代理问题 场景:前后端分离项目问题,在前端中请求接口,返回数据这个过程,但是在这个过程中,前端会有两个环境,一个是开发环境,一个是生产环境. 在开发环境中请求接口可能会遇到跨域问题,比如请求的端口是3000,当前端口是8080,这时候就会遇到跨域问题,或者ip不同,也会存在跨…

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模式之下,以上操作,只能操作部分内容.对于这个问题要如何解决呢? 告诉后端,做一个重定向就好了.

http://www.dinnco.com/news/28217.html

相关文章:

  • 房屋租赁网站开发背景无锡优化网站排名
  • 做设计及免费素材网站有哪些郑州网站推广公司排名
  • 罗湖网站设计费用百度站长平台怎么用
  • 最吉利旺财的公司名字厦门seo俱乐部
  • 上市企业网站设计大连做优化网站哪家好
  • 西安企业网站制作价格windows优化大师自动安装
  • 一家专做二手手机的网站叫什么手机百度贴吧网页版登录入口
  • 学院网站建设申请报告百度企业查询
  • 海门做网站公司网络营销招聘
  • 湖北响应式网站设计制作广告软文范例
  • 电子商务网站的建设游戏推广员怎么做
  • 网站开发语言排行网络营销推广方案ppt
  • 网站用户投稿怎么做郑州seo网站关键词优化
  • 巩义网站建设案件数据sem推广托管公司
  • 浩森宇特北京网站建设南宁百度seo优化
  • 长春市建设信息网站营销网站定制
  • 网站主机ip查询qq群排名优化软件购买
  • 网站开发应聘问题今日新闻内容
  • 服务器价格长沙百度快照优化排名
  • ppt模板去哪个网站下载深圳推广公司推荐
  • 免费一级域名网站贺州seo
  • 不开网店怎么做淘宝网站站优化
  • 旅游网站建设方案简介昆明seo外包
  • 做网站听的纯音乐关键词歌曲
  • 深圳最专业的高端网站建设seo视频教程
  • 海纳百川网站建设山东移动网站建设
  • 个人网站的版权怎么写百度热线人工服务电话
  • 微信网站建站平台深圳关键词首页排名
  • 手机网站一键导航代码今日刚刚发生的重大新闻
  • wordpress怎么批量把定时的文章发布出去深圳知名网络优化公司