当前位置: 首页 > news >正文

多个vue项目部署到nginx服务器

文章目录

  • 需求
  • 一、项目打包
    • 1.vue.config.js
    • 2.request.js文件
    • 3.打包
  • 二、nginx配置


需求

同一个域名安装多个vue项目。

比如:域名为 https://domain.com + 后缀。那么通过不同的后缀就能去访问不同的项目地址。

https://domain.com,不加任何后缀,访问官网。

https://domain.com/admin,域名加上 /admin,就访问管理后台项。

https://domain.com/user,加上 /user,就访问用户端项目。

一、项目打包

需要注意的文件就两个。request.JS和vue.config.JS。

在env文件中设置VUE_APP_CONTEXT_PATH为/admin/

1.vue.config.js

module.exports = {// 部署生产环境和开发环境下的URL。// 默认情况下,Vue CLI 会假设你的应用是被部署在一个域名的根路径上// 例如 https://www.domain.vip/。如果应用被部署在一个子路径上,你就需要用这个选项指定这个子路径。例如,如果你的应用被部署在 https://www.domain.vip/admin/,则设置 baseUrl 为 /admin/。publicPath: process.env.VUE_APP_CONTEXT_PATH,//实际为/admin/// 在npm run build 或 yarn build 时 ,生成文件的目录名称(要和baseUrl的生产环境路径一致)(默认dist)outputDir: 'dist',// 用于放置生成的静态资源 (js、css、img、fonts) 的;(项目打包之后,静态资源会放在这个文件夹下)assetsDir: 'static',......
}

2.request.js文件

在router文件夹中index.js文件中修改base为 ‘/admin/’

export default new Router({base: process.env.VUE_APP_CONTEXT_PATH, //调整这里,路径跟publicPath保持一致即可mode: 'history', // 去掉url中的#scrollBehavior: () => ({ y: 0 }),routes: constantRoutes
})

3.打包

1.执行npm run build。可能不一定为build,具体执行命令看package.json的下面这个字段 。

在这里插入图片描述

调整完毕后,直接执行build打包命令,可以发现index.html引入js路径增加了/admin

<script src=/admin/static/js/chunk-libs.c52f1d1f.js></script>
<script src=/admin/static/js/app.15183e6d.js></script>

2.将打包好的文件上传到服务器,一般存在于dist文件夹,具体文件夹位置看命令行的提示。
在这里插入图片描述

在服务器上找个文件夹直接丢上去。/www/wwwroot/XXXXXX(项目总域名名字)/app/XXXXX(单个项目名字)。不喜欢可自行发挥,尽量保证这些项目在同一文件下。

二、nginx配置

nginx配置服务,使不同请求地址,去找相应的项目。

我这里使用的宝塔部署(图省事)自己部署也是一样的。

server
{listen 80;server_name 这里填写你的域名;#重定向某个地址# 这个是第一个vue项目 页面访问地址 http://域名/location / {return 302 /admin/select;#我这里是重定向到/admin项目的select页面}
#正常部署第一个项目# 这个是第一个vue项目 页面访问地址 http://域名/location / {root   /www/wwwroot//dist;index  index.html;try_files $uri $uri/ /index.html;}# 这个是第二个vue项目 页面访问地址 http://域名/adminlocation /admin {alias /www/wwwroot/admin/dist;#这里是你的代码地址try_files $uri $uri/ /admin/index.html; #解决刷新404 这里的/admin和 location /admin 必须一致}# 这个是第三个vue项目 页面访问地址 http://ip:9001/userlocation /user {alias /www/wwwroot/user/dist;#这里是你的代码地址try_files $uri $uri/ /user/index.html; #解决刷新404 这里的/user和 location /user 必须一致}# 转发以 /prod-api 开头的请求到后端location /prod-api/ {proxy_set_header Host $http_host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header REMOTE-HOST $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_pass http://127.0.0.1:8080/;}
}

注意:如果页面中有二级路由的话,配置文件中一定不能用root,要用alias.

注意如果你也如果配置文件中有一下内容请注释

    # location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$# {#     expires      30d;#     error_log /dev/null;#     access_log /dev/null;# }# location ~ .*\.(js|css)?$# {#     expires      12h;#     error_log /dev/null;#     access_log /dev/null;# }

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Java 21的Preferences API的笔记
  • java 长连接中的sse与websocket含义, 两者的区别
  • 【Java】解决项目启动时端口被占用
  • 相互作用先验下的 3D 分子生成扩散模型 - IPDiff 评测
  • 顶级AI框架用于构建聊天机器人
  • linux从0到1 基础完整知识
  • k8s环境搭建
  • Redis中String类型的基本命令
  • 工作分享,小红书企业內推码附送
  • 职业技能大赛背景下的移动互联网应用软件开发(Android)实训室建设方案
  • 由于安装nvm 引发的vue : 无法将“vue”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。
  • 快说啊,说你养猫后也不开心
  • 第二期: 第三节 裸机代码如何烧写
  • SprinBoot+Vue宠物寄养系统的设计与实现
  • linux kernel 6.x 用户态地址空间探究
  • 实现windows 窗体的自己画,网上摘抄的,学习了
  • hadoop集群管理系统搭建规划说明
  • JavaScript 奇技淫巧
  • javascript面向对象之创建对象
  • js数组之filter
  • js中的正则表达式入门
  • vue 个人积累(使用工具,组件)
  • yii2中session跨域名的问题
  • 阿里云购买磁盘后挂载
  • 百度地图API标注+时间轴组件
  • 包装类对象
  • 从setTimeout-setInterval看JS线程
  • 聊聊sentinel的DegradeSlot
  • 让你成为前端,后端或全栈开发程序员的进阶指南,一门学到老的技术
  • 如何胜任知名企业的商业数据分析师?
  • 入职第二天:使用koa搭建node server是种怎样的体验
  • 使用阿里云发布分布式网站,开发时候应该注意什么?
  • 双管齐下,VMware的容器新战略
  • 再次简单明了总结flex布局,一看就懂...
  • 走向全栈之MongoDB的使用
  • gunicorn工作原理
  • ​​​​​​​​​​​​​​Γ函数
  • #AngularJS#$sce.trustAsResourceUrl
  • #我与Java虚拟机的故事#连载04:一本让自己没面子的书
  • #我与Java虚拟机的故事#连载15:完整阅读的第一本技术书籍
  • (007)XHTML文档之标题——h1~h6
  • (07)Hive——窗口函数详解
  • (3)STL算法之搜索
  • (delphi11最新学习资料) Object Pascal 学习笔记---第5章第5节(delphi中的指针)
  • (LNMP) How To Install Linux, nginx, MySQL, PHP
  • (TipsTricks)用客户端模板精简JavaScript代码
  • (附源码)ssm教材管理系统 毕业设计 011229
  • (附源码)计算机毕业设计ssm电影分享网站
  • (更新)A股上市公司华证ESG评级得分稳健性校验ESG得分年均值中位数(2009-2023年.12)
  • (三)mysql_MYSQL(三)
  • (一)VirtualBox安装增强功能
  • (转)Linux NTP配置详解 (Network Time Protocol)
  • (转)大道至简,职场上做人做事做管理
  • (转载)虚幻引擎3--【UnrealScript教程】章节一:20.location和rotation
  • (轉貼)《OOD启思录》:61条面向对象设计的经验原则 (OO)