项目打包及部署到服务器二级路由

例如:我希望将打包的项目部署到 http://localhost:8088/web/

一. 项目配置及打包

项目部署到服务器二级路由需要配置基础路径base,即需要:

1.配置vite.config.ts中的基础路径

2.配置路由的基础路径

方式一 通过环境变量配置基础路径

分别在productiondevelopment模式下的环境变量中添加基础路径变量,生产环境:.env.production文件,开发环境:.env.development文件

##生产环境
NODE_ENV='production'
VITE_BASE_PATH=/web/
##开发环境
NODE_ENV='development'
VITE_BASE_PATH='/'

vite.config.ts

在配置中添加:
export default ({ mode }: ConfigEnv): UserConfig => {
// 获取 .env 环境配置文件
const env = loadEnv(mode, process.cwd());
return {
base: env.VITE_BASE_PATH,
...
}
}

router/index.ts

const router = createRouter({
history: createWebHistory(import.meta.env.VITE_BASE_PATH),
routes
})

package.json

"scripts": {
"dev": "vite serve --mode development",
"build:prod": "vue-tsc --noEmit && vite build --mode production"
}

打包:

npm run build:prod

方式二 通过打包时的指令配置基础路径

不用配置环境变量,vite.config.ts不用配置base属性,只需要在router/index.ts中添加:

const router = createRouter({
history: createWebHistory(import.meta.env.BASE_URL),
routes
})

import.meta.env.BASE_URL为vite内置

package.json

"scripts": {
"dev": "vite serve --mode development",
"dev:base": "vite serve --mode development --base",
"build:prod": "vue-tsc --noEmit && vite build --mode production"
"build:base": "vue-tsc --noEmit && vite build --mode production --base",
}

打包:

npm run build:base --base /web/

二. nginx配置及部署

server {
listen 8088;
server_name localhost; location /web {
#二级路由时需要使用别名alias,不用root
alias html/dist/;
index index.html;
#若不配置try_files,刷新会404
try_files $uri $uri/ /web/index.html;
} #后台接口
location /prod-api/ {
proxy_pass http://172.16.20.30:9905/;
}
}

Vite基础路径指令配置原理

在vite当中,官方提供了一些内置环境变量,其中就包括BASE_URL,该值默认为/,在项目文件中,必须通过import.meta.env.xxx的方式调用环境变量,此处为import.meta.env.BASE_URL,之后,vite会将import.meta.env.BASE_URL替换为内置的BASE_URL的值,并可以通过指令:--base <path>设置BASE_URL的值



使用npm运行脚本时可以传递参数,在package.json中添加指令:

demo: vite build --mode production

运行npm run demo时等同于vite build --mode production

运行npm run demo -- --base /web/时等同于vite build --mode production --base /web/

但是-- --有两个--,使用起来不太方便,于是改进一下指令:

demo: vite build --mode production --base

运行npm run demo --base /web/时等同于vite build --mode production --base /web/

nginx+vite 项目打包及部署到服务器二级路由的更多相关文章

  1. React项目打包并部署到 Github 展示预览效果

    React项目打包并部署到 Github 展示预览效果 当开发者模式结束,准备打包的时进行以下步骤: 在package.json配置文件中加一句: "homepage": &quo ...

  2. Java项目使用 Tomcat 部署 Linux 服务器

    一.安装 Java 环境 1 下载 jdk 8 yum -y install java-1.8.0-openjdk java-1.8.0-openjdk-devel 设置 centos7 环境变量 v ...

  3. 项目通过tomcat部署到服务器,请求数据中文乱码问题

    问题: 本地项目请求访问,浏览器中文输出没问题.部署到服务器上面之后,返回到浏览器的中文就乱码了. 尝试办法: 1.修改tomcat下的conf中的service.xml中的配置信息: 重新启动后,没 ...

  4. nginx+uwsgi+django+virtualenv+supervisor部署web服务器

    wsgi 全称web server gateway interface,wsgi不是服务器,也不是python模块,只是一种协议,描述web server如何和web application通信的规则 ...

  5. 高级运维(四):Nginx常见问题处理、安装部署Tomcat服务器、使用Tomcat部署虚拟主机

    一.Nginx常见问题处理 目标: 本案例要求对Nginx服务器进行适当优化,以提升服务器的处理性能: 1> 不显示Nginx软件版本号 2> 如果客户端访问服务器提示“Too many ...

  6. 项目打包 tomcat部署

    IDE: IDEA 1.项目maven管理先执行 clean,再执行 compile 2.如果编译compile不成功,则将 C:\Users\Administrator\.m2\repository ...

  7. 项目打包 weblogic部署

    工作流打包:   由于没有集成单点,配置文件要修改 将webnocas.xml内容复制覆盖 web.xml   到这里修改完毕 选择weblogic项目,右键maven install,生成.ear文 ...

  8. idea maven项目打包并部署到tomcat

    打包 打开Maven管理器,邮寄package,执行Run Maven Build,执行成功后将war包生成到target目录下. 部署 1.将war包复制到tomcat安装目录下的webapps目录 ...

  9. 【Vue】基于nodejs的vue项目打包编译部署

    一·项目编译 1·进入项目目录下的终端执行命令 npm run build 正常情况如下图,如遇到错误不会编译成功,且编译后的html文件不能正常渲染. 2·编译完成后进入项目下的dist目录运行生成 ...

  10. Eclipse中创建新的SpringBoot项目(打包并且部署到tomcat)

    Spring-boot因为其对jar包的高度集成以及简化服务配置,快速部署等的优点,逐渐成为Java开发人员的热衷的框架.下面演示一下怎么在Eclipse中新建Spring-boot项目以及打包部署. ...

随机推荐

  1. 如何使用autotools/automake自动生成Makefile文件

    前言: Linux下编程时,为了方便编译,往往使用Makefile文件自动完成编译,但是Makefile文件本身的书写十分复杂,规则很多.好在Linux为我们提供了自动生成功能完善的Makefile文 ...

  2. windows jetbrains toolbox 无法修改应用安装目录(应用正在运行)的解决方案

    打开 jetbrains toolbook安装目录/.settings.json 添加一行 "install_location": 指定的路径地址 解决方案来自 JetBrains ...

  3. resttemplate 由于框架原因自带了转xml方式,不改变框架底层情况下,修复为返回json格式

    RestTemplate httpClientTemplate = new RestTemplate(); List<HttpMessageConverter<?>> conv ...

  4. tex基础

    Tex中输入空格以及换行 1. 使用\ 表示空格以及调整空格的大小quad空格    a \qquad b        两个m的宽度quad空格    a \quad b        一个m的宽度 ...

  5. 初次接触软构和git(使用eclipse)

    目录: 一.git和github 二.软件构造lab1常见问题(eclipse) 一.git和github 1. git的安装 百度git然后去官网安装即可,不会的可以去百度查一下. 2. git和g ...

  6. Tomcat启动—本地文件夹

    打开tomcat文件夹 打开bin目录 在路径这里输入cmd 就可以直接跳转到当前页面下 接下来我们在cmd命令中启动startup.bat (记得设置java环境变量) 这里我没设置utf-8 我无 ...

  7. binary与进制转换

    精华笔记: 什么是二进制:逢2进1的计数规则.计算机中的变量/常量都是按照2进制来计算的 2进制: 规则:逢2进1 数字:0 1 基数:2 权:128 64 32 16 8 4 2 1 如何将2进制转 ...

  8. 入门文章学习(一)-Beginner Tutorial

    Abstract: 参照"背景知识查阅"一文的学习路径,对几篇文章的学习做了记录.这是"Beginner Tutorial"一文的学习笔记. 文章链接: htt ...

  9. QT网络编程【二】【Socket】

    1.QT中添加socket 库的相关操作 2.正常c++11 VS2019使用socket库的操作 3.winsock2 与 sys/socket.h的区别? 4.WinSock2 的基本操作? 详细 ...

  10. 总结Unity查找物体的几种方法

    Unity中经常需要查找对象,对应的API也有好几种,各自有不同的适用场合. 1. GameObject.Find 通过名字或路径查找游戏对象. GameObject.Find("GameO ...