vite+vue3+ts项目上线docker 配置反向代理API

这篇具有很好参考价值的文章主要介绍了vite+vue3+ts项目上线docker 配置反向代理API。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

这次重点的坑是反向代理。

1。项目中配置代理,为了跨域请求数据

项目根目录中新建vite.config.ts文件

vue3部署到docker,docker,容器,运维

在文件中添加配置代理

vue3部署到docker,docker,容器,运维

注意:其中 '/api' 和target 的地址后面没有 '/'

2。在项目根目录中新建Httprequest.ts文件,引入axios,并封装请求 引入axios就不多说了,npm自行安装就好

import axios from 'axios';
import {
  LicId,
  FrontCode,  
  getTime,
  WxAppId
} from './utils/index';
import {
  getToken
} from './utils/token';


// 创建一个axios实例
const instance = axios.create({
  baseURL: '/api', // 设置请求的基础URL
  timeout: 5000, // 设置请求超时时间
});


// 请求拦截器
instance.interceptors.request.use(
  async (config) => {
   
  // 发送token请求
    let token = localStorage.getItem('token')?localStorage.getItem('token'):'';
    if(!token){
      token = await getToken();
    }
      
    // 在发送请求之前添加自定义header信息
    config.headers['Authorization'] ='Bearer ' + token;
    config.headers['TimeStamp'] = getTime();
    config.headers['LicId'] = LicId;
    config.headers['FrontCode'] = FrontCode;
    config.headers['WxAppId'] = WxAppId;   

    
    return config;
  },
  (error) => {
    return Promise.reject(error);
  }
);

// 响应拦截器
instance.interceptors.response.use(
  (response) => {
    // 对响应数据进行处理
    return response.data;
  },
  (error) => {
    return Promise.reject(error);
  }
);


  

// 封装GET请求
export function get(url:string, params:any) {
  return instance.get(url, { params });
}

// 封装POST请求
export function post(url:string, data:any) {
  return instance.post(url, data);
}

注意这里,baseURL要和代理中设置的一致

vue3部署到docker,docker,容器,运维

项目正常编写,本地运行,测试正常后,准备上线docker

3。vite打包。注意调整静态资源路径,注意配置package.json,除此以外也没什么

vue3部署到docker,docker,容器,运维

正常按配置执行打包 npm run build:prod —— 这里和package.json里一样就可以了

执行完成后,得到dist文件夹。上线文件就是它了

vue3部署到docker,docker,容器,运维

现在转到服务器上操作

1。将dist上传到服务器的文件夹里,一般是在/www/wwwroot 文件夹下面建立一个新的文件夹,比如叫做 newpro

将dist上传到newpro,注意是整个文件夹上传,不是dist里面的内容上传

2。在newpro文件夹里,建立Dockerfile文件,可以在本地写好,传上去。注意:这个文件没有扩展名

vue3部署到docker,docker,容器,运维

文件内容如下:

# 使用官方的 Nginx 镜像作为基础镜像
FROM nginx:latest

# 将本地dist文件夹内的内容复制到容器中的nginx默认工作目录
COPY dist /usr/share/nginx/html

# 替换nginx配置文件(如果需要自定义)
#COPY nginx.conf /etc/nginx/conf.d/default.conf

# 暴露Nginx的默认端口
EXPOSE 80

# 启动Nginx服务
CMD ["nginx", "-g", "daemon off;"]

上传到服务器后:

vue3部署到docker,docker,容器,运维

现在在newpro文件夹里进入终端,执行docker命令,生成镜像。如果你用的是宝塔面板,那么就是下面这样的

vue3部署到docker,docker,容器,运维在终端中执行以下命令,注意最后有个 点

docker build -t xxx(英文镜像名称) . 

执行成功后,再执行

docker run -d --name 英文的容器名称(自己起) -p 10726:80 镜像名称(刚刚生成的)

注意: 10726:80 分别代表服务器的端口和docker里的端口。这个操作表示把服务器的10726端口映射到docker的80端口上 这个10726自己写就可以,只要不和其它端口冲突就行

到此,docker上线完毕

然后要在服务器的nginx中,发布网站,将域名绑定到网站上

网站的配置文件如下:

server
{
    listen 80;
    server_name xxx.net(绑定的域名);
    index index.html index.htm;
    #root /www/wwwroot/hua.crabstech.com;
    location /api/ {
        proxy_pass https://api.net:9006/; #API地址:端口
    }
     location / {

                proxy_pass http://localhost:10726;
        }
    
}

重要坑点来了

vue3部署到docker,docker,容器,运维

vite配置的代理,当dist离开本地电脑时,vite就已经不再负责了,服务器上的代理,由nginx代理来完成

重点:

这个代理,要在服务器nginx,不要在docker里做!

这个代理,要在服务器nginx,不要在docker里做!

这个代理,要在服务器nginx,不要在docker里做!

重要的事情说三遍

更重要的是,和vite.config.ts中不同的是,要加上末位的两个 '/'

一定要加

api后面的 '/'不加,nginx配置文件会报错

地址后面的'/'不加,反向代理配置不生效

一定要加!一定要加!一定要加!

vue3部署到docker,docker,容器,运维

如果做完以上这些,反向仍然不生效,可以参考下面的博文试试

Nginx问题之反向代理无法成功_nginx x-forwarded-for不生效-CSDN博客

省流解释:要在被访问的API服务器的nginx配置中,添加当前网站域名。

vue3部署到docker,docker,容器,运维文章来源地址https://www.toymoban.com/news/detail-830271.html

到了这里,关于vite+vue3+ts项目上线docker 配置反向代理API的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 配置Vite获取内网IP(Vue3项目​ts版本获取本机局域网IP地址)

    参考文章:vue项目获取本机局域网IP地址(vue.config.js版本) 在Vite中,没有vue.config.js文件,而是使用vite.config.js(或vite.config.ts,如果项目使用TypeScript)来配置项目; 1.获取 IP 需要借助  os  模块,需要先安装依赖: 2.其次在vite.config.ts中引用模块  3.接着,添加一个获取本机内

    2024年02月05日
    浏览(45)
  • 前端新手Vue3+Vite+Ts+Pinia+Sass项目指北系列文章 —— 第十二章 常用工具函数 (Utils配置)

    在项目开发中,我们经常会使用一些工具函数,也经常会用到例如 loadsh 等工具库,但是这些工具库的体积往往比较大,如果项目本身已经引入了这些工具库,那么我们就没有必要再引入一次,所以我们需要自己封装一些工具函数,来简化我们的开发。 在 src/utils 目录下创建

    2024年02月20日
    浏览(62)
  • vue3+vite+ts+elementplus创建项目

    # vue3+vite+ts+pinia 学习笔记 ## 1、创建项目: npm init vite@latest     选择: vue、ts ## 2、进入项目目录后:npm install 安装 ## 3、运行项目: npm run dev ## 4、安装常用插件:     1、安装 npm install vue-router@latest 配置:在src目录下新建router目录,创建index.ts文件代码如下:       ```javascript 创建

    2024年02月09日
    浏览(61)
  • vite vue3项目打包,跳过ts检查

    遇到这个问题是因为vue文件中script标签没有写lang造成的  剩下的ts类型检查错误  \\\"build\\\": \\\"vue-tsc --noEmit --skipLibCheck vite build\\\",是因为这个vue-tsc打包对ts进行了类型检查,需要全部解决了才行,可以关闭,直接改成\\\"build\\\": \\\"vite build\\\",

    2024年02月16日
    浏览(60)
  • vue3+ts+vite项目引入echarts,vue3项目echarts组件封装

    技术栈 :Vue3 + Ts + Vite + Echarts 简介 : 图文详解,教你如何在 Vue3 项目中 引入Echarts , 封装Echarts组件 ,并实现常用Echarts图例 1.1 静态效果 1.2 动态效果 2.1 安装 Echarts npm: pnpm: 2.2 main.ts 中引入 2.3 Echarts 组件封装 /src/components/ReEcharts/index.vue 文件中写入如下代码 3.1 柱状图 实现

    2024年02月09日
    浏览(64)
  • 基于Vue3+TS+Vite+Cesium创建项目

    随着近几年社会的发展,人们对三维可视化的需求也是越来越多,三维GIS如今真的越来越火了,对于做GIS前端开发的人员来说,Cesium开发是绝对绕不开的一门技术,所以今天来说说如何利用当下最火的 Vue3+TS+Vite 来搭建一个基于Cesium的项目开发环境。 1.使用 yarn create vite 创建

    2024年02月05日
    浏览(75)
  • 【Vue3+Ts+Vite】配置滚动条样式

    2024年02月15日
    浏览(45)
  • Vue3通透教程【十七】Vite构建TS版本Vue项目

    专栏介绍: 凉哥作为 Vue 的忠实 粉丝输出过大量的 Vue 文章,应粉丝要求开始更新 Vue3 的相关技术文章,Vue 框架目前的地位大家应该都晓得,所谓三大框架使用人数最多,公司选型最多的框架,凉哥之前在文章中也提到过就是 Vue 框架之所以火起来的原因,和 Vue 框架相比其

    2024年02月13日
    浏览(56)
  • vite+vue3+ts项目中提示无法找到模块

    今天在开发过程中碰到了导入模块时提示无法找到模块这个问题,分享一下我的解决思路 首先产生这个错误是: 无法找到模块XXX,并且提示\\\'XXX\\\' is declared but its value is never read 产生这个问题的原因是我们使用了ts语法,他只能识别.ts文件,并不能识别.vue文件,所以在引入组件

    2024年02月11日
    浏览(56)
  • 现有的vue3+ts+vite项目集成electron

    Electron是使用JavaScript,HTML和CSS构建跨平台的桌面应用程序框架。 Electron兼容Mac、Windows和Linux,可以构建出三个平台的应用程序。 安装依赖 原来有一个vue3+ts+vite+pnpm的项目,其中sub-modules是子项目,web是主入口项目,项目结构如下: 需要将其转换成Electron项目,只需要在原来

    2024年02月12日
    浏览(67)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包