vue 项目打包之后进行修改配置后端 IP 地址、端口等信息方法

前言

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

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

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

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

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

window.webConfig = {
  "webApiBaseUrl": "http://127.0.0.1:8001",
  "webSystemTitle":"标题"
}

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

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

 4、接口地址变化后直接修改 dist 下对应的 webconfig.js 文件即可,修改完成重新打开项目查看 ip 端口已经改变, 无需重新打包 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!

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

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


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

  • 15
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
在 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 地址

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

CSDN_33901573

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

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

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

打赏作者

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

抵扣说明:

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

余额充值