vue打包之后,可以进行修改配置后端地址、端口等信息方法

前言

        用vue-cli构建的项目通常是采用前后端分离的开发模式,也就是前端与后台完全分离,此时就需要将后台接口地址打包进项目中,但是,难道我们只是改个接口地址也要重新打包吗?当然不行了,那就太麻烦了,怎么解决呢?本文推荐俩种方式。

方式1:通过创建js文件进行实现

 优点:简单易懂,方便上手

缺点:配置文件容易被抓取【其实也不必太过于担心】

1. 在public文件夹下创建webconfig.js文件

window.webConfig = {
    "webApiBaseUrl": "http://api.xxxx.com/api",
    "webSystemTitle":"后台管理系统"
}

2.在index.html页面应用js文件 

3.应用完成之后,就可以在任何地方使用window.webConfig

4.接口地址变化后直接修改dist/config.json文件即可,无需重新打包vue工程


方式二: 通过创建json文件,配合使用axios来实现

1.同样在public文件夹下创建webconfig.json文件

{
    "webApiBaseUrl": "http://api.xxxx.com/api",
    "webSystemTitle":"后台管理系统"
}

2.在base.js文件中读取【主要是放在axios请求处,因为是把后端接口域名提取出来了,所以当道了base.js文件】

/**
 * 接口域名的管理
 */
import axios from 'axios'
const base = {
  web: getWebApiBaseUrl(),
  signalRApiHost: process.env.VUE_APP_SignalR_APIHOST,
}

function  getWebApiBaseUrl(){
  let WebApiBaseUrl = process.env.VUE_APP_BASE_APIHOST
  axios.get('../webconfig.json').then(res => {  // 请求上面描述的本地配置文件
    // 当env=prod 时请求地址为生产环境
    const node_env = process.env.NODE_ENV 
    if(node_env == 'production'){
      WebApiBaseUrl = res.data.webApiBaseUrl
    }else{
      WebApiBaseUrl = process.env.VUE_APP_BASE_APIHOST
    }
  })
  return WebApiBaseUrl // Vue.prototype.WebApiBaseUrl;
}

export default base

3.步骤2主要是解释如何通过axios发起get请求,读取json配置文件,具体写在哪个地方,要根据自己的实际情况而定

注意:config.json的路径,路径中没有public! 路径中没有public! 路径中没有public!

开发的过程中其实不太理解这是为什么,但从npm run build编译后生成的dist/ 才能更好的理解为什么会这样。如下图,打包后的vue工程,config.json是在根目录下的,没有public目录。

接口地址变化后直接修改dist/config.json文件即可,无需重新打包vue工程

结束语:以上俩种方式,均可以实现vue工程打包之后修改后端接口以及其他配置的诉求,结合实际情况运用,个人推荐使用方式1,使用起来,一个字,真香....

  • 3
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论
1.项目代码均经过功能验证ok,确保稳定可靠运行。欢迎下载体验!下载完使用问题请私信沟通。 2.主要针对各个计算机相关专业,包括计算机科学、信息安全、数据科学与大数据技术、人工智能、通信、物联网等领域的在校学生、专业教师、企业员工。 3.项目具有丰富的拓展空间,不仅可作为入门进阶,也可直接作为毕设、课程设计、大作业、初期项目立项演示等用途。 4.当然也鼓励大家基于此进行二次开发。在使用过程中,如有问题或建议,请及时沟通。 5.期待你能在项目中找到乐趣和灵感,也欢迎你的分享和反馈! 【资源说明】 课程设计-基于Vue+Express实现的新闻聚合网站项目源码+运行说明(含前端+后端).zip 本次项目是Web编程项目demo,为新闻聚合网站(聚合了网易新闻/新浪新闻/新华网/人民网),在此网站中有独立的热搜模块(较为简陋),四个新闻平台热点关键词词云及其数据量,同时您可以在网站中进行筛选搜索,结果会以模态框形式弹出,点击对应的结果即可跳转到对应的新闻原URL,所有结果均为定时爬虫所爬取。 本站使用了Vue3+NaiveUI作为前端框架与组件,使用了Nodejs+Express作为项目后端,阿里云MySQL数据库作为项目数据库。 项目运行 本项目前后端分离,前端为front文件夹,后端为back文件夹,进入前后端文件夹后分别运行 ```shell npm install ``` 下载相应的module文件(如果没有的话) 由于本项目为demo项目,因此并没有做过深的负载等考虑,为开发模式,仅作为演示,因此Vue项目并未打包,均为源码开发模式呈现。 在front文件夹下运行 ```shell npm run serve ``` 启动前端测试(默认运行在8080端口) 在back文件夹下运行 ```shell node main.js ``` 启动服务器(默认运行在8000端口) 然后打开浏览器访问http://localhost:8080/即可测试项目 项目组成 ### 前端 前端为单页面应用,所有交互均以模态框(或类模态框)进行,结构如下: ``` |-- front/src |-- main.js |-- App.vue |-- components | |-- Hot.vue | |-- Display.vue | |-- Result.vue |-- assets | ... ``` 其中App.vue负责整体页面(主页),Hot.vue负责热搜模态框,Display.vue负责展示模态框,Result.vue负责搜索结果展示模态框(包含分页)。 ### 后端 后端由于是第一次写nodejs后端,因此封装或者模块化都比较简陋,以后有兴趣的话可以将后端用Python或Java重写,结构如下: ``` |-- back |-- main.js |-- crawler | |-- common.js | |-- crawler.js | |-- websites | |-- wangyi.js | |-- xinlang.js | |-- xinhua.js | |-- renmin.js | ... ``` 主体部分还是在爬虫上,由于针对不同网站的爬虫会有所不同,因此我将匹配的关键词放在了websites文件夹中的每个js文件中,种子页面处理放在crawler.js中,common.js用来放一些常用模块的二次封装(或者测试的时候可以拿来用,比如我的连接数据库操作是放在main中的,其他地方没有数据库,因此测试某个网站是否成功导入数据库中也可以在common中加入数据库连接操作并exports出来)。 其余定时器,search,热搜,展示的数据均在main.js中生成(这里是由于nodejs不太熟悉不会很好的封装,因此统一整合到了main中)
这是一个基于SpringBoot和Vue.js的智慧社区设计与实现的项目资源包。它包含了完整的源码、部署说明、演示视频以及源码介绍,帮助开发者快速搭建和理解智慧社区系统。 项目主要功能包括: 社区公告发布与查看:管理员可以发布社区公告,居民可以查看公告信息。 报修管理:居民可以提交报修申请,管理员可以查看、处理报修申请。 投诉建议:居民可以提交投诉建议,管理员可以查看、处理投诉建议。 社区活动:管理员可以发布社区活动信息,居民可以查看活动信息并报名参加。 居民信息管理:管理员可以管理居民的基本信息,如添加、修改、删除居民信息等。 物业费用管理:管理员可以管理物业费用,居民可以查询物业费用。 技术栈: 后端:SpringBoot、MyBatis、MySQL 前端Vue.js、Element-UI、Axios 部署说明: 环境要求:Java 8+、MySQL 5.7+、Maven 3.5+ 数据库配置修改application.properties文件中的数据库连接信息,创建相应的数据库和表。 后端部署:使用Maven打包项目,运行生成的jar包启动项目。 前端部署:将前端代码放入服务器,配置域名和端口,运行npm install安装依赖,运行npm run build打包项目,运行npm run serve启动项目。 演示视频: 项目资源包中包含一个演示视频,展示了智慧社区系统的主要功能和操作流程。 源码介绍: 项目源码分为前端后端两部分。前端使用Vue.js框架,采用Element-UI组件库构建界面。后端使用SpringBoot框架,集成MyBatis持久层框架,使用MySQL数据库存储数据。整个项目结构清晰,代码规范,易于阅读和维护。
在 Docker 中部署前后端分离的应用,可以使用 Nginx 作为反向代理服务器,将前端后端应用部署在不同的容器中,然后通过 Nginx 配置后端端口映射成前端端口。 下面是一些简单的步骤: 1. 编写 Dockerfile。 编写前端后端的 Dockerfile,将前端后端应用打包到 Docker 镜像中。 2. 编写 docker-compose.yml。 在 docker-compose.yml 中指定前端后端的容器,以及 Nginx 的容器,然后通过 links 或 networks 等方式将容器连接起来。 例如: ``` version: '3' services: frontend: build: context: ./frontend ports: - 80:80 backend: build: context: ./backend ports: - 8000:8000 nginx: build: context: ./nginx ports: - 80:80 links: - frontend - backend ``` 3. 编写 Nginx 配置文件。 在 Nginx 的配置文件中,配置反向代理服务器,将后端端口映射成前端端口。 例如: ``` server { listen 80; server_name example.com; # 前端域名 root /usr/share/nginx/html; # 前端目录 location / { try_files $uri $uri/ /index.html; } } server { listen 80; server_name api.example.com; # 后端域名 location / { proxy_pass http://backend:8000; # 后端实际地址 proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } } ``` 这里假设前端文件在 `/usr/share/nginx/html` 目录下,后端监听的端口号是 8000。 4. 启动 Docker。 使用 docker-compose 启动 Docker 容器。 ``` docker-compose up -d ``` 这样就完成了前后端分离应用的部署。在浏览器中访问前端页面,可以输入 `http://example.com`,在浏览器中访问后端 API 接口,可以输入 `http://api.example.com/api/xxx`。 需要注意的是,如果前端后端使用的是不同的域名,需要在 DNS 解析中添加相应的解析记录,使域名能够正确解析到服务器的 IP 地址

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

用心_承载未来

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值