如何使用Vite打包和部署项目到服务器二级路由

这篇具有很好参考价值的文章主要介绍了如何使用Vite打包和部署项目到服务器二级路由。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

如果你想把你用Vite构建的项目部署到服务器的二级路由上,比如 http://demo.dev/admin/ ,你需要注意以下几个步骤:

一. 配置基础路径base

基础路径base是指你的项目在服务器上的相对路径,比如你的项目部署在 http://demo.dev/admin/ 上,那么你的基础路径就是 /admin/ 。你需要在两个地方配置基础路径:

  1. 配置 vite.config.ts 中的 base 属性。这个属性会影响你的静态资源的引用路径,比如图片,样式,脚本等。你可以在 vite.config.ts 中直接写死 base 的值,也可以通过环境变量来动态设置。
  2. 配置路由的 history 模式。这个模式会影响你的路由路径,比如你访问 http://demo.dev/admin/login ,那么你需要在路由中指定基础路径为 /admin/ ,否则会出现 404 错误。你可以在 router/index.ts 中使用 import.meta.env.BASE_URL 来获取vite.config.ts 中 设置的 base 值。

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

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

#生产环境
VITE_BASE_PATH=/admin/

##开发环境
VITE_BASE_PATH='/'

vite.config.ts

在配置中添加:

# 函数式写法
export default ({ mode }: ConfigEnv): UserConfig => {
  // 获取 .env 环境配置文件
  const env = loadEnv(mode, process.cwd());
  return {
    base: env.VITE_BASE_PATH,
    ...
  }
}

# 或
import dotenv from 'dotenv';

dotenv.config({ path: `.env.${process.env.NODE_ENV}` });
export default defineConfig({
  base: process.env.VITE_BASE_PATH,
})

router/index.ts

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

package.json

"scripts": {
    "dev": "NODE_ENV=development vite",
    "preview": "vite preview",
    "build": "vite build",
}


# 函数式配置vite.config.ts
# "scripts": {
#   "dev": "vite serve --mode development",
#   "build:prod": "vue-tsc --noEmit && vite build --mode production"
# }

打包:

npm run build

二. nginx配置及部署

nginx是一个高性能的HTTP和反向代理服务器,可以用来部署你的Vite项目。你需要在nginx的配置文件中添加以下内容:

server {
  listen       80;
  server_name  demo.dev;

  location /admin {
    #二级路由时需要使用别名alias,不用root
    alias html/dist/;
    index  index.html;
    #若不配置try_files,刷新会404
    try_files $uri $uri/ /admin/index.html;
  }

  #后台接口
  location /api/ {
    proxy_pass http://api.demo.dev/;
  }
}

这里解释一下几个关键的配置项:

  • listen:指定监听的端口号,这里是80,你可以根据你的实际情况修改。
  • server_name:指定服务器的域名,这里是demo.dev,也可以修改为你的域名。
  • location /admin:指定二级路由的路径,这里是/admin,要和你的项目基础路径保持一致。
  • alias html/dist/:指定二级路由对应的项目目录,这里是html/dist/,也就是你打包后生成的dist文件夹,要放在nginx的html目录下。
  • try_files $uri $uri/ /web/index.html:指定当请求的资源不存在时,重定向到/admin/index.html,这样可以避免刷新页面时出现404错误。
  • location /api/:指定后台接口的路径,这里是/api/,要和你的项目中请求后台接口的路径保持一致。
  • proxy_pass http://api.demo.dev/:指定后台接口对应的真实地址,这里是http://api.demo.dev/,要根据你的实际情况修改。

配置好nginx后,重启nginx服务,然后就可以在浏览器中访问 
http://demo.dev/admin/
 查看你的项目了。

Vite基础路径指令配置原理

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

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

demo: vite build --mode production

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

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

demo: vite build --mode production --base

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

转载:如何使用Vite打包和部署项目到服务器二级路由 - 初心文章来源地址https://www.toymoban.com/news/detail-762623.html

到了这里,关于如何使用Vite打包和部署项目到服务器二级路由的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • Vite4 + Vue3 项目打包并发布Nginx服务器 (前端必看)

    这里因为我们有的小伙伴可能不太需要服务器,单纯学习的话也没有必要去买一个服务器。如果需要把自己的东西部署到公网上,有很多方式,自行百度。你也可以购买阿里云或者腾讯云。逻辑都是一样的,我这里使用的虚拟机+centos系统,我已经提前在自己的机器安装好了。

    2024年02月05日
    浏览(89)
  • 使用Nginx反向代理,将React项目打包后部署到服务器的二级子目录

    我们上线一个项目的时候如果服务器上只有这一个项目的话可以直接将打包后的代码部署到服务器指定的根目录,然后直接上线看就可以看到,不用配置其他项。 但是,如果服务器有多个项目的话,我们就需要将代码部署到服务器根目录里边的子目录了,而放到子目录的话,

    2024年03月26日
    浏览(55)
  • vue项目打包部署到服务器

    目录 一、打包项目  二、修改Nginx的配置 三、部署 四、开放端口号 1. 在 vue.config.js 文件中找到并修改,主要是publicPath 与outputDir 两项配置,若项目中有baseUrl,替换为publicPath (baseUrl, vue cli 3.3 已弃用) 2. 修改完成之后就可以进行打包了,在package.json文件找到下图中的打包命

    2024年02月05日
    浏览(70)
  • 打包前后端项目并部署至服务器

    打包命令: npm run build 执行完命令后,会生成一个名为 dist 的文件夹,这个就是打包好的前端项目。 2.1、执行 maven 的 clean ,删除项目编译创建的 target 文件夹 2.2、执行 package,将项目打包至 target 文件夹下 3.1、连接服务器 3.2、在根目录创建文件夹,并上传打包好的前后端项

    2024年01月23日
    浏览(64)
  • 【前端部署】vue项目打包并部署到Linux服务器

    在vs code中打开vue前端项目文件夹,在终端中输入 npm run build ,打包完成后,在前端项目文件夹中会生成一个名为 dist 的文件夹,如下图所示: dist文件夹打开如下所示: 打开服务器终端,在终端中输入以下命令,下载nginx安装包。 其中nginx版本可以自己选择,具体版本可查看

    2024年02月06日
    浏览(68)
  • Golang 打包go项目部署到linux服务器

    我们可以在终端中输入以下代码: 然后就会生成main-linux的二进制可执行文件,然后我们就可以将main-linux放到服务器中的任一目录中,然后我们就可以执行以下命令运行。 这是我们在网上可以搜索到的方法,但是我相信很多人通过这个方法尝试后发现,它并不能运行。我相信

    2024年02月16日
    浏览(67)
  • SpringBoot + Vue2项目打包部署到服务器后,使用Nginx配置SSL证书,配置访问HTTP协议转HTTPS协议

    配置nginx.conf文件,这个文件一般在/etc/nginx/...中,由于每个人的体质不一样,也有可能在别的路径里,自己找找... 证书存放位置,可自定义存放位置 两个文件 后端配置 把.pfx拷贝到resource下,然后配置一下yml

    2024年02月02日
    浏览(75)
  • Nuxt - 项目打包部署及上线到服务器流程(SSR 服务端渲染)

    网上大部分关于 Nuxt 打包部署教程真的是可以用五花八门来形容,这对于第一次接触的朋友简直是无从下手。 本文将尽可能详细的描述,打包部署及上线到服务器完整流程。 强烈建议您打开 官方文档,与本教程对照着,这有助于您更好的理解。 您需要先了解一下 Nuxt 命令及

    2024年02月09日
    浏览(60)
  • Vue+ElementUI项目打包部署到Ubuntu服务器中

    1、修改config/index.js中的assetsPublicPath: \\\'/\\\',修改为assetsPublicPath: \\\'./\\\' 2、在build/utils.js中增加publicPath: \\\'../../\\\' 3、打开终端,在根目录下执行npm run build进行打包,打包成功后会生成dist 4、将dist传输到服务器上(我已经把dist重命名为html) 5、服务器中如果没有nginx则安装nginx 6、配置

    2024年02月07日
    浏览(65)
  • SpringBoot前后端分离项目,打包、部署到服务器详细图文流程

    1.修改MySQL配置 修改MySQL地址,修改需要部署的数据名,账号和密码 2.修改Redis配置 修改Redis地址,修改需要部署的Redis密码(如果需要的话) 3.修改日志路径和字符集配置 修改logback.xml中日志的保存地址 重新设置日志字符集(防止放到服务器上去之后日志出现乱码) 1.上传前

    2024年02月13日
    浏览(69)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包